Как подключиться к базе данных MySQL? - Free Pascal
Формулировка задачи:
Как подключиться к базе данных MySQL? Пришел к тому, что есть библиотека mysql51(нужная мне версия), но как пользоваться так и не понял.
Решение задачи: «Как подключиться к базе данных MySQL?»
textual
Листинг программы
program qtest; uses mysql51; Const DataBase : Pchar = 'a3760338_db'; Query : Pchar = 'Select * from maanedstabel'; var count,num : longint; code : integer; sock : PMYSQL; qmysql : Pmysql; qbuf : string [160]; rowbuf : MYSQL_ROW; dummy : string; recbuf : PMYSQL_RES; begin if paramcount=1 then begin Dummy:=Paramstr(1)+#0; DataBase:=@Dummy[1]; end; Write ('Connecting to MySQL...'); qmysql := mysql_init(nil); sock :=mysql_real_connect(qmysql,'mysql5.000webhost.com','a3760338_user','igordb0','a3760338_db',3306,nil,0); if sock=Nil then begin Writeln (stderr,'Couldn''t connect to MySQL.'); Writeln (stderr,mysql_error(qmysql)); halt(1); end; Writeln ('Done.'); Writeln ('Connection data:'); {$ifdef Unix} writeln ('Mysql_port : ',mysql_port); writeln ('Mysql_unix_port : ',mysql_unix_port); {$endif} writeln ('Host info : ',mysql_get_host_info(sock)); writeln ('Server info : ',mysql_stat(sock)); writeln ('Client info : ',mysql_get_client_info); Writeln ('Selecting Database ',DataBase,'...'); if mysql_select_db(sock,DataBase) < 0 then begin Writeln (stderr,'Couldn''t select database ',Database); Writeln (stderr,mysql_error(sock)); halt (1); end; writeln ('Executing query : ',Query,'...'); if (mysql_query(sock,Query) < 0) then begin Writeln (stderr,'Query failed '); writeln (stderr,mysql_error(sock)); Halt(1); end; recbuf := mysql_store_result(sock); if RecBuf=Nil then begin Writeln ('Query returned nil result.'); mysql_close(sock); halt (1); end; Writeln ('Number of records returned : ',mysql_num_rows (recbuf)); Writeln ('Number of fields per record : ',mysql_num_fields(recbuf)); rowbuf := mysql_fetch_row(recbuf); while (rowbuf <>nil) do begin Write ('(Id: ', rowbuf[0]); Write (', Name: ', rowbuf[1]); Writeln(', Email : ', rowbuf[2],')'); rowbuf := mysql_fetch_row(recbuf); end; Writeln ('Freeing memory occupied by result set...'); mysql_free_result (recbuf); Writeln ('Closing connection with MySQL.'); mysql_close(sock); halt(0); end.
Объяснение кода листинга программы
- Установка соединения с базой данных MySQL.
- Проверка соединения с базой данных MySQL.
- Выбор базы данных для работы.
- Выполнение SQL-запроса.
- Получение результатов запроса.
- Вывод результатов запроса.
- Освобождение памяти, занятой результатами запроса.
- Закрытие соединения с базой данных MySQL.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д