проблема с ADO + MS SQL под Windows XP ( в win95,win98,win 2000 все нормально) выдает ошибку при закрытии TADOTable если не вызван метод First().
( в Builder C++ 5 ) :???:
Здравствуйте -Dm-, Вы писали:
D>проблема с ADO + MS SQL под Windows XP ( в win95,win98,win 2000 все нормально) выдает ошибку при закрытии TADOTable если не вызван метод First().
D>( в Builder C++ 5 )
стандартная проблема — стандартное решение.
procedure TDM1.QueryClose(DataSet: TDataSet);
begin
if TADOQuery(DataSet).Active then
TADOQuery(DataSet).Recordset.Close;
end;
procedure TDM1.DataModuleCreate(Sender: TObject);
var
i:integer;
begin
for i := 0 to ComponentCount-1 do
if Components[i] is TADOQuery then TADOQuery(Components[i]).BeforeClose := DM1.QueryClose;
end;
procedure TDM1.DataModuleDestroy(Sender: TObject);
var
i:integer;
begin
for i := 0 to ComponentCount-1 do
if Components[i] is TADOQuery then
if TADOQuery(Components[i]).Active then
TADOQuery(Components[i]).Recordset.Close;
end;
Я примерно так и делая только я не recordset закрываю а метод First() вызываю.
Интересно просто с чем такое поведение под XP связано ?
И может быть в Buildere 6 все нормально
Посмотри здесь:
ftp://ftpc.borland.com/pub/bcppbuilder/devsupport/patches/bcpp5/
Там есть файл с именем: BCB5ADOUpgrade1.exe
Попробуй его, гарантировать не могу, но аналогичный патч решил аналогичную проблему в Дельфи 5.