Как подключиться к базе данных 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.

Объяснение кода листинга программы

  1. Установка соединения с базой данных MySQL.
  2. Проверка соединения с базой данных MySQL.
  3. Выбор базы данных для работы.
  4. Выполнение SQL-запроса.
  5. Получение результатов запроса.
  6. Вывод результатов запроса.
  7. Освобождение памяти, занятой результатами запроса.
  8. Закрытие соединения с базой данных MySQL.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.3 из 5
Похожие ответы