Как подключиться к базе данных MySQL? - Free Pascal

Узнай цену своей работы

Формулировка задачи:

Как подключиться к базе данных MySQL? Пришел к тому, что есть библиотека mysql51(нужная мне версия), но как пользоваться так и не понял.

Решение задачи: «Как подключиться к базе данных MySQL?»

textual
Листинг программы
  1. program qtest;
  2.  
  3. uses
  4.   mysql51;
  5.  
  6. Const
  7.   DataBase : Pchar = 'a3760338_db';
  8.   Query    : Pchar = 'Select * from maanedstabel';
  9.  
  10. var
  11.   count,num : longint;
  12.   code : integer;
  13.   sock : PMYSQL;
  14.   qmysql : Pmysql;
  15.   qbuf : string [160];
  16.   rowbuf : MYSQL_ROW;
  17.   dummy : string;
  18.   recbuf : PMYSQL_RES;
  19.  
  20. begin
  21.   if paramcount=1 then
  22.     begin
  23.     Dummy:=Paramstr(1)+#0;
  24.     DataBase:=@Dummy[1];
  25.     end;
  26.   Write ('Connecting to MySQL...');
  27.   qmysql := mysql_init(nil);
  28.  
  29.   sock :=mysql_real_connect(qmysql,'mysql5.000webhost.com','a3760338_user','igordb0','a3760338_db',3306,nil,0);
  30.   if sock=Nil then
  31.     begin
  32.     Writeln (stderr,'Couldn''t connect to MySQL.');
  33.     Writeln (stderr,mysql_error(qmysql));
  34.     halt(1);
  35.     end;
  36.   Writeln ('Done.');
  37.   Writeln ('Connection data:');
  38. {$ifdef Unix}
  39.   writeln ('Mysql_port      : ',mysql_port);
  40.   writeln ('Mysql_unix_port : ',mysql_unix_port);
  41. {$endif}
  42.   writeln ('Host info       : ',mysql_get_host_info(sock));
  43.   writeln ('Server info     : ',mysql_stat(sock));
  44.   writeln ('Client info     : ',mysql_get_client_info);
  45.  
  46.   Writeln ('Selecting Database ',DataBase,'...');
  47.   if mysql_select_db(sock,DataBase) < 0 then
  48.     begin
  49.     Writeln (stderr,'Couldn''t select database ',Database);
  50.     Writeln (stderr,mysql_error(sock));
  51.     halt (1);
  52.     end;
  53.  
  54.   writeln ('Executing query : ',Query,'...');
  55.     if (mysql_query(sock,Query) < 0) then
  56.       begin
  57.       Writeln (stderr,'Query failed ');
  58.       writeln (stderr,mysql_error(sock));
  59.       Halt(1);
  60.       end;
  61.  
  62.   recbuf := mysql_store_result(sock);
  63.   if RecBuf=Nil then
  64.     begin
  65.     Writeln ('Query returned nil result.');
  66.     mysql_close(sock);
  67.     halt (1);
  68.     end;
  69.   Writeln ('Number of records returned  : ',mysql_num_rows (recbuf));
  70.   Writeln ('Number of fields per record : ',mysql_num_fields(recbuf));
  71.  
  72.   rowbuf := mysql_fetch_row(recbuf);
  73.   while (rowbuf <>nil) do
  74.        begin
  75.        Write  ('(Id: ', rowbuf[0]);
  76.        Write  (', Name: ', rowbuf[1]);
  77.        Writeln(', Email : ', rowbuf[2],')');
  78.        rowbuf := mysql_fetch_row(recbuf);
  79.        end;
  80.   Writeln ('Freeing memory occupied by result set...');
  81.   mysql_free_result (recbuf);
  82.  
  83.   Writeln ('Closing connection with MySQL.');
  84.   mysql_close(sock);
  85.   halt(0);
  86. end.

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

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

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


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

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

10   голосов , оценка 4.3 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы