Sources
Delphi Russian Knowledge Base
DRKB - база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Подключение через TMySQLClient & TMySQLResult

01.01.2007
Mal Hack

Решение нашел...

  1. Без использования dbExpress, а с использованием специальных классов TMySQLClien & TMySQLResult.

  2. Все эти файлы ( файл приаттачит Secandr (90 кил)) надо положить либо в папку с проектом, либо в

  3. Код:

Сразу говорю, показал только основные моменты. Код, для определения ошибок и т.п. писать не стал.

uses
  .....
 uMysqlClient, uMysqlCT, uMysqlErrors, uMysqlHelpers, uMysqlNet, uMysqlNewPassword, uMysqlSSL, uMysqlVio;

type
 ...
   procedure QueryData( Query : string); // Результирующий запрос (заносим данные в таблицу)
   procedure QueryNoData( Query : string ); // insetrt, delete - нет полученны данных 
 ...

var
  ...
 SQLConnection     : TMysqlClient; // Объявляем переменную для соединения.
 Grid              : TStringGrid;
  ...

implementation
....

// Установка соединения
SQLConnection := TMysqlClient.Create;
 with SQLConnection do
  begin
   Host      := 'localhost';
   User      := 'root';
   Password  := '';
   Db        := 'mysql';

  try
   connect;
  Except On Exception Do
   begin
     Application.MessageBox( 'К сожалению, соединиться с MySQL-сервером не удалось. Проверьте правильность ввода всех параметров.', 'Ошибка соединения', 0 );
    exit;
   end;
  end;
 end;

// Выполнение запроса:

procedure TMainForm.QueryData( Query : string );
var
mysql_result : TMySQLResult;
i, j : integer;
OK : boolean;
begin
OK := true;

try
 mysql_result := SQLConnection.query( Query, true, OK );
Except On Exception Do
 begin
  Application.MessageBox( 'Запрос не выполнилс.', 'Ошибка соединения', 0 );
  exit;
 end;
end;

with Grid do 
 begin
  ColCount := mysql_result.FieldsCount;
  RowCount := mysql_result.RowsCount+1;

  if RowCount = 1 then
   FixedRows := 0
  else
   FixedRows := 1;

  for i := 0 to mysql_result.RowsCount - 1 do
    begin
      for j := 0 to mysql_result.FieldsCount do
        Cells[ j, i + 1 ] := mysql_result.FieldValue( j );
      mysql_result.Next;
    end;
 end;

mysql_result.free;
end;

procedure TMainForm.QueryNoData( Query : string );
begin
// Аналогично предыдущей процедуре, без внесения данных в таблицу. для запросов Insert, Update .....
end;
Previous page:
Справочник по MySQL
Top:
DRKB
Next page:
ODBC