Сделал вот такой запрос
Код:
1 2 3 4 5 6 7 8 9 10 | AG1 := StrToInt(FormFind . Age . Text);
ADOQuery1 . Close;
ADOQuery1 . SQL . Clear;
ADOQuery1 . SQL . Add( 'SELECT Pacient.*, Pacient.SName & ' ' ' ' & Pacient.FName & ' ' ' ' & Pacient.TName AS FIO, Pacient.IDPc & ' '_' ' & Anketa.IDPc AS IDPc, Anketa.*' );
ADOQuery1 . SQL . Add( 'FROM Pacient' );
ADOQuery1 . SQL . Add( 'INNER JOIN Anketa ON Pacient.IDPc = Anketa.IDPc' );
ADOQuery1 . SQL . Add( 'WHERE Pacient.AGE = :Ag' );
ADOQuery1 . Parameters . ParamByName( 'Ag' ).Value := AG1;
ADOQuery1 . Open;
DateSource1 . DataSet := ADOQuery1;
|
Загружает все поля из таблиц Pacient и Anketa с объединением трех полей в одно новое FIO и слиянием двух полей Pacient.IDPc и Anketa.IDPc в одно поле IDPc с условие по Pacient.AGE. Во время выполнение последней строчки в вызывает Vcl.Controls
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 | procedure TWinControl . MainWndProc( var Message: TMessage);
begin
try
try
WindowProc(Message);
finally
FreeDeviceContexts;
FreeMemoryContexts;
end ;
except
Application . HandleException(Self);
end ;
end ;
|
В строке Application.HandleException(Self) выходит ошибка "Несовпадение типов".
Сделать маленький проект новый с тем-же точно запросом и с теми-же таблицами ни какой ошибки нет. Значить ошибка где-то в проекте а где не могу понять.
Помогите люди добрые!