MySQL için C'de sprintf() fonksiyonu ile tarih formatı oluşturma

Yazar: Admin

Kategori: Yazılım

MySQL Connector/C kullanarak oluşturduğunuz programlarla MySQL Sunucu'da yer alan veritabanlarında yapılan sorgulamalarda (query), sprintf() fonksiyonu kullanır ve tablo veri alanlarındaki tarih değerlerini DATE_FORMAT komutu ile yapılandırarak tablodan okutmak isterseniz, DATE_FORMAT komutu içinde yer alan % karakterinin sprintf() fonksiyonu parametresi olarak algılanmaması için önüne ek olarak bir % karakteri daha yazmak gerekir.

Aşağıdaki komut satırı genel kullanım şeklini göstermektedir:


sprintf(dizi, "SELECT DATE_FORMAT(alan_adi, '%%d.%%m.%%Y') as tarih_tr FROM tablo_adi");

Aşağıdaki kodlar fatura adlı tablodan tarih alan değerini gg.aa.yyyy formatında okuyarak qdizi adlı karakter dizisine atar ve bu diziyi kullanarak mysql_query() fonksiyonuyla sorgulamayı gerçekleştirir:


MYSQL *conn;
char qdizi[1000];
  
conn = mysql_init(NULL);

if(conn == NULL) {
   MessageBox(NULL, mysql_error(conn), "Veritabanı hatası", MB_OK | MB_ICONWARNING);
   return 0;
}

if(mysql_real_connect(conn, "localhost", "root", "password", "veritabani_adi", 3306, NULL, 0) == NULL) {
   MessageBox(NULL, mysql_error(conn), "Veritabanı hatası", MB_OK | MB_ICONWARNING);
   mysql_close(conn);
   return 0;
} 
  
sprintf(qdizi, "SELECT DATE_FORMAT(tarih, '%%d.%%m.%%Y') as tarih_tr FROM fatura", );
  
if(mysql_query(conn, qdizi)) {
   MessageBox(NULL, mysql_error(conn), "Veritabanı hatası", MB_OK | MB_ICONWARNING);
   mysql_close(conn);
   return 0;
}