GTAMulti - GTA Türkiye

San Andreas Multiplayer => PAWN Kodlama => Anlatımlar => Konuyu başlatan: Kraus - 14 Eylül 2017, 19:40:51

Başlık: MySQL R40+ Kullanım Şekilleri/neler değişti?
Gönderen: Kraus - 14 Eylül 2017, 19:40:51
MySQL R40+ Kullanım Şekilleri/neler değişti?


MySQL R40 değişikliklerini SA-MP forumundaki yazıyı anladığım kadarıyla anlatmaya çalışacağım. Bu değişiklikler sadece R33+ uyumlu ve R40'da değişmiş kodlar için geçerlidir.




Birçok kod değişmiş, Bütün kodlar her zaman doğru, performanslı ve stabil çalışmayacağından bu kodları yenisine çevirmelisiniz. Orjinal konuda RegEx için kolay değiştirme kodları verilmiş, sanırım Notepad++ programı kullanarak yapılabiliyor, ancak ben bunu bilmediğimden bu konuya eklemiyorum.




● Bağlantı tanımlamalarında kullanılacak yeni "MySQL" etiketi. Bu etiketi kullanmanız gerekiyor.

R39 ve altında
new g_SQL;

public OnGameModeInit()
{
g_SQL = mysql_connect(/* ... */);
}



R40+
new MySQL:g_SQL;

public OnGameModeInit()
{
g_SQL = mysql_connect(/* ... */);
}





● Log level tanımlamalarındaki gereksiz ön ek kaldırıldı. "LOG_"

R39 ve altında
mysql_log(LOG_ERROR | LOG_DEBUG);


R40+
mysql_log(ERROR | DEBUG);

Sadece LOG_ kısmını silmeniz yeterli.




● mysql_escape_string, mysql_stat ve mysql_get_charset fonksiyonlarındaki Bağlantı parametresi en sondaki pozisyona taşındı

R39 ve altında
mysql_get_charset(destination, g_SQL, sizeof(destination));


R40+
mysql_get_charset(destination, sizeof(destination), g_SQL);




● mysql_connect fonksiyonundaki şifre ve veritabanı parametrelerinin yerleri değiştirildi.

R39 ve altında
mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_DATABASE, MYSQL_PASSWORD);


R40+
mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASSWORD, MYSQL_DATABASE);




● mysql_connect fonksiyonundaki tüm bağlantı seçenekleri, kendisi için kodlanmış olan sistemden ayarlanacak.

R39 ve altında
mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASSWORD, MYSQL_DATABASE, .autoreconnect = false, .pool_size = 0);


R40+
new MySQLOpt:options = mysql_init_options();
mysql_set_option(options, AUTO_RECONNECT, false);
mysql_set_option(options, POOL_SIZE, 0);
mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASSWORD, MYSQL_DATABASE, options);





● mysql_option, mysql_global_options olarak yeniden adlandırıldı.

R39 ve altında
mysql_option(DUPLICATE_CONNECTIONS, true);


R40+
mysql_global_options(DUPLICATE_CONNECTIONS, true);




● mysql_log'un içindeki log type parametresi kaldırıldı.

R39 ve altında
mysql_log(ALL, LOG_TYPE_HTML);


R40+
mysql_log(ALL);





● mysql_reconnect kaldırıldı.

R39 ve altında
mysql_reconnect(g_SQL);


R40+
mysql_close(g_SQL);
g_SQL = mysql_connect(/* ... */);


Sadece mysql bağlantısını kapatıp tekrar bağlanıyorsunuz.




● mysql_current_handle kullanımı tamamen kaldırıldı. Yeni kullanımı yok.




● Bağlantı parametresi tüm cache fonksiyonlarında kaldırıldı.

R39 ve altında
cache_get_row(0, 0, g_SQL);


R40+
cache_get_row(0, 0);




● cache_get_row, cache_get_value_index olarak yeniden adlandırıldı.

R39 ve altında
cache_get_row(0, 0, dest);
new value = cache_get_row_int(0, 1);



R40+
cache_get_value_index(0, 0, dest);
new value = cache_get_value_index_int(0, 1);


Sadece bulup değiştirmeniz yeterlidir.




● cache_get_field_content, cache_get_value_name olarak yeniden adlandırıldı. String/Integer/Float değerler için değişiklikler/eklemeler yapıldı.

R39 ve altında
new dest[128];
cache_get_field_content(0, "string", dest);

new value = cache_get_field_content_int(0, "integer");

new Float:value = cache_get_field_content_float(0, "float");



R40+
new dest[128];
cache_get_value_name(0, "string", dest);

new value = cache_get_value_name_int(0, "integer");

new Float:value;
cache_get_field_content_float(0, "float", value);


Sadece bulup değiştirmeniz yeterlidir.




● Tüm cache_get fonksiyonları artık değerleri döndürmüyor, yazdığınız parametreye tanımlıyor.

R39 ve altında
new bool:value = cache_get_value_index_bool(0, 2);

new row_count = cache_get_row_count();



R40+
new bool:value;
cache_get_value_index_bool(0, 2, value);

new row_count;
cache_get_row_count(row_count);





● "cache_set_active(Cache:0);" kullanımı artık aktif cache'yi tanımsız yapamıyor.

R39 ve altında
cache_set_active(Cache:0);


R40+
cache_unset_active();




● cache_get_data fonksiyonu kaldırıldı. (`cache_get_*_count` şeklinde kullanın):

R39 ve altında
new rows, fields;
cache_get_data(rows, fields);



R40+
new rows, fields;
cache_get_row_count(rows);
cache_get_field_count(fields);





● orm_delete'deki clearvars bool parametresi kaldırıldı.

R39 ve altında
orm_delete(orm_id, true);


R40+
orm_delete(orm_id);
orm_clear_vars(orm_id);





● NULL Fonksiyonu ekledi.

new bool:is_null;
cache_is_value_name_null(3, "date", is_null);
printf("The value in the fourth row and in the column 'date' %s 'NULL'.", is_null ? "is" : "is not");





● Index ile veri çekebileceğiniz fonksiyonlar eklendi. Artık Verilerinizi index'e göre de çekebilirsiniz.

cache_get_value_index
cache_get_value_index_int
cache_get_value_index_float
cache_is_value_index_null





● Connection handle gereksiz fonksiyonlardan kaldırıldı. Kullanılan yerleri görmek için buraya tıklayın (http://wiki.sa-mp.com/wiki/MySQL/R40).




Anlatım SA-MP forumundan alıntıdır. Türkçe anlatım bana aittir. Orjinal Konu için tıklayın (https://forum.sa-mp.com/showthread.php?p=3761067). SA-MP R40 hakkında wiki sayfası için tıklayın (http://wiki.sa-mp.com/wiki/MySQL/R40). Anlatımdaki yanlışlarımı yorumdan gönderirseniz sevinirim, düzeltmeye çalışacağım.

Saygılarımla, Kraus
Başlık: Ynt: MySQL R40+ Kullanım Şekilleri/neler değişti?
Gönderen: Dyternal - 14 Eylül 2017, 19:49:34
Türkçene sağlık. Yazan ellerinede sağlık.
Başlık: Ynt: MySQL R40+ Kullanım Şekilleri/neler değişti?
Gönderen: Lé Spîke - 14 Eylül 2017, 19:51:09
Ellerine sağlık
Başlık: Ynt: MySQL R40+ Kullanım Şekilleri/neler değişti?
Gönderen: Kraus - 14 Eylül 2017, 20:37:39
Alıntı yapılan: STaRDuST10 - 14 Eylül 2017, 19:49:34

Türkçene sağlık. Yazan ellerinede sağlık.


Alıntı yapılan: DeliOqlan - 14 Eylül 2017, 19:51:09

Ellerine sağlık

Değerli yorumlarınız için teşekkürler.
Başlık: Ynt: MySQL R40+ Kullanım Şekilleri/neler değişti?
Gönderen: pag - 19 Eylül 2017, 17:09:05
Bir sunucuyu R40+ sürümüne yükseltirsek ne olur yani ne değişir?
Başlık: Ynt: MySQL R40+ Kullanım Şekilleri/neler değişti?
Gönderen: Lé Spîke - 19 Eylül 2017, 17:11:49
Alıntı yapılan: FeelsBadMan - 19 Eylül 2017, 17:09:05

Bir sunucuyu R40+ sürümüne yükseltirsek ne olur yani ne değişir?


Daha stabil olur daha performanslı olur
Başlık: Ynt: MySQL R40+ Kullanım Şekilleri/neler değişti?
Gönderen: Kraus - 19 Eylül 2017, 18:12:13
Alıntı yapılan: FeelsBadMan - 19 Eylül 2017, 17:09:05

Bir sunucuyu R40+ sürümüne yükseltirsek ne olur yani ne değişir?

R33 üstü kullanıyorsan çok bir şey değişmez ama daha düşük sürüm kullanıyorsan olağanüstü bir hızlanma/performans artışı oluyor.
Başlık: Ynt: MySQL R40+ Kullanım Şekilleri/neler değişti?
Gönderen: Levi - 19 Eylül 2017, 19:25:29
Ortada gerçek bir emek var. Konu için teşekkürler  :helal:
Başlık: Ynt: MySQL R40+ Kullanım Şekilleri/neler değişti?
Gönderen: pag - 20 Eylül 2017, 14:53:29
Teşekkür ederim,aklımdaki bazı soruların cevabını aldım.
Başlık: Ynt: MySQL R40+ Kullanım Şekilleri/neler değişti?
Gönderen: Raganai - 27 Ekim 2017, 22:42:41
teşekkürler, yardımcı oldu (=
Başlık: Ynt: MySQL R40+ Kullanım Şekilleri/neler değişti?
Gönderen: ace - 28 Ekim 2017, 08:49:52
Teşekkürler :helal: Ellerine Sağlık
Başlık: Ynt: MySQL R40+ Kullanım Şekilleri/neler değişti?
Gönderen: pag - 24 Kasım 2017, 23:57:58
Modumu R39 dan 40a gecirmek mantikli mi acaba?
Başlık: Ynt: MySQL R40+ Kullanım Şekilleri/neler değişti?
Gönderen: Backup - 25 Kasım 2017, 00:30:16
Alıntı yapılan: FeelsBadMan - 24 Kasım 2017, 23:57:58

Modumu R39 dan 40a gecirmek mantikli mi acaba?

R41 çıktı. Geçmek için gecikmişsin bile.
Başlık: Ynt: MySQL R40+ Kullanım Şekilleri/neler değişti?
Gönderen: pag - 25 Kasım 2017, 08:28:57
Alıntı yapılan: Backup - 25 Kasım 2017, 00:30:16

Alıntı yapılan: FeelsBadMan - 24 Kasım 2017, 23:57:58

Modumu R39 dan 40a gecirmek mantikli mi acaba?

R41 çıktı. Geçmek için gecikmişsin bile.

Peki gecmek mantiklimi bi faydasi olurmu?
Başlık: Ynt: MySQL R40+ Kullanım Şekilleri/neler değişti?
Gönderen: Levi - 25 Kasım 2017, 11:30:24
Alıntı yapılan: FeelsBadMan - 25 Kasım 2017, 08:28:57

Alıntı yapılan: Backup - 25 Kasım 2017, 00:30:16

Alıntı yapılan: FeelsBadMan - 24 Kasım 2017, 23:57:58

Modumu R39 dan 40a gecirmek mantikli mi acaba?

R41 çıktı. Geçmek için gecikmişsin bile.

Peki gecmek mantiklimi bi faydasi olurmu?


Hız konusunda daha iyi bir performans alırsın.
Başlık: Ynt: MySQL R40+ Kullanım Şekilleri/neler değişti?
Gönderen: Backup - 25 Kasım 2017, 16:20:14
Alıntı yapılan: FeelsBadMan - 25 Kasım 2017, 08:28:57

Alıntı yapılan: Backup - 25 Kasım 2017, 00:30:16

Alıntı yapılan: FeelsBadMan - 24 Kasım 2017, 23:57:58

Modumu R39 dan 40a gecirmek mantikli mi acaba?

R41 çıktı. Geçmek için gecikmişsin bile.

Peki gecmek mantiklimi bi faydasi olurmu?

Tabii ki mantıklı , güncel kullanmak her zaman iyidir.
Başlık: Ynt: MySQL R40+ Kullanım Şekilleri/neler değişti?
Gönderen: _Code - 26 Kasım 2017, 00:02:32
GtaTurk'de bana faydası dokunmuştu bu konunun. Buradada konuyu bizimle paylaştığın için teşekkürler.
Başlık: Ynt: MySQL R40+ Kullanım Şekilleri/neler değişti?
Gönderen: FelleR - 27 Haziran 2019, 01:37:25
Yararlı.
Başlık: Ynt: MySQL R40+ Kullanım Şekilleri/neler değişti?
Gönderen: Kraus - 28 Haziran 2019, 04:11:58
Yorumlar için teşekkürler.
Başlık: Ynt: MySQL R40+ Kullanım Şekilleri/neler değişti?
Gönderen: Unknown - 28 Haziran 2019, 20:44:47
Anlatım için teşekkürler.
Başlık: Ynt: MySQL R40+ Kullanım Şekilleri/neler değişti?
Gönderen: QrzR - 28 Haziran 2019, 21:21:11
Teşekkürler.