1. MSSQL Server
2. Windows XP
3. Lazarus 0.9.25
Надо:
Сделать запрос в БД через ODBC (или иначе)
Как реализовано у меня (пример):
- Код: Выделить всё
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, odbcconn, sqldb;
type
{ TForm1 }
TForm1 = class(TForm)
ODBCConnector: TODBCConnection;
MasterQuery: TSQLQuery;
SQLTransaction1: TSQLTransaction;
Test: TLabel;
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
//for ODBC
ODBCServerConnect: TODBCConnection;
SQLMainQuery: TSQLQuery;
SQLTrans: TSQLTransaction;
implementation
initialization
{$I Unit1.lrs}
begin
ODBCServerConnect := TODBCConnection.Create(nil);
with ODBCServerConnect do
begin
DatabaseName := 'SomeDataBase';
HostName := 'MSSQLServer';
Driver := 'SQL Server';
Password := 'pass';
Username := 'sa';
Open;
end;
SQLTrans := TSQLTransaction.Create(nil);
SQLTrans.DataBase := ODBCServerConnect;
SQLMainQuery := TSQLQuery.Create(nil);
with SQLMainQuery do
begin
DataBase := ODBCServerConnect;
Transaction := SQLTrans;
SQL.Clear;
SQL.Add('SELECT * FROM claim WHERE inc=12');
Open;
end;
SQLMainQuery.Close;
SQLMainQuery.Free;
ODBCServerConnect.Free;
end;
На выходе получаю ошибку "invalid field size: 37". Что не так?
P.S. Запрос (как этот, для примера, так и тот, который нужен) в самом MSSQL выполняется правильно и не пустой.