Programlama

Web Programlama

Veritabanı

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

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;
}