GTAMulti.com - Türkiye'nin Türkçe GTA Sitesi

MySQL R40+ Kullanım Şekilleri/neler değişti?

Başlatan Kraus, 14 Eylül 2017, 19:40:51

« önceki - sonraki »

0 Üye ve 2 Ziyaretçi konuyu incelemekte.

Kraus

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.




Anlatım SA-MP forumundan alıntıdır. Türkçe anlatım bana aittir. Orjinal Konu için tıklayın. SA-MP R40 hakkında wiki sayfası için tıklayın. Anlatımdaki yanlışlarımı yorumdan gönderirseniz sevinirim, düzeltmeye çalışacağım.

Saygılarımla, Kraus

Safari Gaming © sɪɴᴄᴇ 2014
www.sf-gaming.net

Dyternal

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


Lé Spîke

         

Kraus

Safari Gaming © sɪɴᴄᴇ 2014
www.sf-gaming.net

pag

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


Lé Spîke

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

         

Kraus

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.

Safari Gaming © sɪɴᴄᴇ 2014
www.sf-gaming.net

Levi

Ortada gerçek bir emek var. Konu için teşekkürler  :helal:
Son düzenlenme: 27 Ekim 2017, 22:46:04 Levi
"I'm the best damn thing that your eyes have ever seen."

pag

Teşekkür ederim,aklımdaki bazı soruların cevabını aldım.


Raganai

Alıntı
Umberto Eco'nun, Ortaçağı Düşlemek adlı kitabında dediği gibi: Ne yani böylesi korkunç bir dünyanın bir de cehennemi mi var?

ace


pag

Modumu R39 dan 40a gecirmek mantikli mi acaba?


Backup

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.


pag

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?


Levi

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.

"I'm the best damn thing that your eyes have ever seen."