Музыка: | Butch Morris - Dust to Dust |
Жыцьцё наладжваецца
- Жонка папраўляецца!
- У бiблiятэцы ўзяў Зорна (Люлiны Навiны й Голы Горад) i Батча Морыса
- Прыбiў "казюрку"
Праграма (на Delphi) працавала як трэба, але на выхадзе выдавала злобную памылку. Прычым першасная трасыроўка паказала, што ўсе формы зачыняюцца як трэба, фiналiзацыя модуляў адбываецца як трэба, а памылка вылятае на апошнiм end. Далейшае тэставаньне паказала, што памылка бывае толькi, калi ў працэсе працы вызываецца працэдура RunCommand:
procedure RunCommand(SQL : String);
begin
Connect;
cn.Execute(SQL, EmptyParam, 0);
end;//RunCommand
(cn - ADO connection, зьменлiвая ўзроўню модуля)
Апынулася, што:
- ADOшны Execute iмпартаўвася так:
function Execute(const CommandText: WideString; out RecordsAffected: OleVariant; Options: Integer): _Recordset; safecall;
- aнiякае магчымасьцi паказаць, што мне гэты RecordsAffected не патрэбны, у Delphi няма;
- калi падсунуць туды стандартны EmptyParam, то памылка й вылятае.
Вылечылася так:
procedure RunCommand(SQL : String);
var
BogusParam : OleVariant;
begin
Connect;
BogusParam := EmptyParam;
cnExperiment.Execute(SQL, BogusParam,0);
end;//RunCommand