Szczerzę już trochę zgłupisałem buduję zapytanie w taki sposób :
- Kod: Zaznacz cały
String path=OpenPictureDialog->FileName;
String SQL;
SQL.printf("update tech_ko_pozostale set schemat='%s' where id_numeru_ko = (select id_numeru_ko from tech_numery_ko where id_numeru_planu=%d and numer_operacji='%s')",path,MAIN_id_numeru_planu,MAIN_operation_number);
i otrzymuję :
- Kod: Zaznacz cały
update tech_ko_pozostale set schemat='\\\\gw\\Schematy\\Elektronika\\Nowy folder\\beztytułu.bmp' where id_numeru_ko = (select id_numeru_ko from tech_numery_ko where id_numeru_planu=409 and numer_operacji='Op1');
1.wysyłam je z konsoli MySQL
działa jest tak jak powinno być,
2.wysyłam je z komponenetu TSQLQuery podczas tworzenia programu czyli w inspektorze dodaje SQL robie Active na true sprawdzam w bazie jest OK
3.wysyłam z kodu poprzez TSQLQuery i guzik. ( przez CommandText i przez SQL ) wygląda to tak :
- Kod: Zaznacz cały
DataModuleMAIN->wykonajZapytanieSQL(SQL);
a funkcja wygląda tak :
- Kod: Zaznacz cały
void TDataModuleMAIN::wykonajZapytanieSQL(String SQL)
{
SQLCONNECTIONMAIN->Open();
SQLQUERYMAIN->Close();
// SQLQUERYMAIN->CommandText=SQL; < -- tak też sprawdzałem
SQLQUERYMAIN->SQL->Clear();
SQLQUERYMAIN->SQL->Add(SQL);
SQLQUERYMAIN->ExecSQL(true); // <--- ExecSQL bo zapytanie nie zwraca kursora
SQLQUERYMAIN->Close();
SQLCONNECTIONMAIN->Close();
}
Gdzieś coś się gubi ale sprawdzałem już tą funkcję co wykonuje zapytania wartosci zmiennych przed przypisaniem po przypisaniu ( przed wysłaniem zapytania do wykonania ) i wszystko jest ok jednak wynik nie jest prawidłowy. Chyba spróbuje to zrobić na SQLDataSecie