Подключение через TMySQLClien & TMySQLResult |
Previous Top Next |
Решение нашел...
1. Без использования dbExpress, а с использованием специальных классов TMySQLClien & TMySQLResult.
2. Все эти файлы ( файл приаттачит Secandr (90 кил)) надо положить либо в папку с проектом, либо в <Delphi_dir>/lib.
3. Код:
Сразу говорю, показал только основные моменты. Код, для определения ошибок и т.п. писать не стал.
Code: |
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; |
Автор Mal Hack
©Drkb::02938
Взято с Vingrad.ru http://forum.vingrad.ru