#8 29.10.07 07:52
Re: [C++] Соединение и запрос данных
Небольшой сэмпл (Когда то делал на Билдере работу с MySQL):
Код: CBuilder:
#include <mysql.h>
extern MYSQL *Con;
extern MYSQL_RES *Res;
extern MYSQL_ROW Row;
extern AnsiString __fastcall mysql_escape(AnsiString Input)
{
char *S = new char[strlen(Input.c_str())*3 + 1];
mysql_real_escape_string(Con, S, Input.c_str(), Input.Length());
Input = S;
Input = StringReplace(Input, "*", "%", TReplaceFlags()<<rfReplaceAll);
return Input;
}
extern Boolean __fastcall mysql_myquery(MYSQL *mysql, AnsiString query)
{
if(mysql_real_query(mysql, query.c_str(), query.Length()) != 0)
{
MessageDlg(AnsiString(mysql_error(Con)), mtError, TMsgDlgButtons() << mbOK, 0);
return true;
}
return false;
}коннект:
Код: CBuilder:
Con = mysql_init(NULL);
mysql_options(Con, MYSQL_SET_CHARSET_NAME, "cp1251");
if(!mysql_real_connect(Con,
Config.Host.c_str(),
Config.Login.c_str(),
Config.Password.c_str(),
Config.DataBase.c_str(),
Config.Port,
NULL, 0))
{
MessageBox(Handle,mysql_error(Con), "Не удалось подключиться.", 0);
}пример запроса:
Код: CBuilder:
AnsiString query = "SELECT id, name FROM clients";
query += "WHERE id=" + IntToStr(id);
if(mysql_myquery(Con, query)) return;
Res = mysql_store_result(Con);
Row = mysql_fetch_row(Res);
FormEdit->Edit1->Text = Row[0];
FormEdit->Memo1->Text = Row[1];
mysql_free_result(Res);на другой С перевести не сложно))
Offline

