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