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

Решение нашел...
1. Без использования dbExpress, а с использованием специальных классов TMySQLClien & TMySQLResult.
2. Все эти файлы ( файл приаттачит Secandr (90 кил)) надо положить либо в папку с проектом, либо в /lib.
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.;

  end;

 end;

mysql_result.free;

end;

procedure TMainForm.QueryNoData( Query : string );

begin

// Аналогично предыдущей процедуре, без внесения данных в таблицу. для запросов Insert, Update .....

end;

Автор Mal Hack
Взято с Vingrad.ru http://forum.vingrad.ru

Отправить комментарий

Проверка
Антиспам проверка
Image CAPTCHA
...