用Adoconnection定义了一个数据库连接DBConn,配制好后打开Open.执行Execute。获取数据后关闭连接close, connected=false。待需要时再打开Open,执行Execute.
但发现关闭连接后,不Open,仍然可以Execute。请高手指点一条真正断开连接,然后可以再连数据库的方法!谢谢谢谢!
但发现关闭连接后,不Open,仍然可以Execute。请高手指点一条真正断开连接,然后可以再连数据库的方法!谢谢谢谢!
Obj: IBusOrder;
MConnection: TADOConnection;
MQuery: TADOQuery;
begin
Result := False;
Visited.QueryInterface(IBusOrder, Obj);
if Obj <> nil then
begin
CoInitialize(nil);
MConnection := TADOConnection.Create(nil);
MConnection.ConnectionString := DBConnection;
MConnection.LoginPrompt := False;
MConnection.Open;
MQuery := TADOQuery.Create(nil);
with MQuery do
begin
try
Connection := MConnection;
MConnection.BeginTrans;
try
SQL.Text := ' Insert Into TPTMIS_BusOrderInfo(FBusOrderID, '+
' FBusOrderName, '+
' FLineID, '+
' FLineName, '+
' FLeaveTime, '+
' FSeatingPreset, '+
' FChildrenPreset, '+
' FIntervalDays, '+
' FOriginalDate ) '+
' Values(:FBusOrderID, '+
' :FBusOrderName, '+
' :FLineID, '+
' :FLineName, '+
' :FLeaveTime, '+
' :FSeatingPreset, '+
' :FChildrenPreset, '+
' :FIntervalDays, '+
' :FOriginalDate ) ';
Parameters.ParamByName('FBusOrderID').Value := Obj.BusOrderID;
Parameters.ParamByName('FBusOrderName').Value := Obj.BusOrderName;
Parameters.ParamByName('FLineID').Value := Obj.LineID;
Parameters.ParamByName('FLineName').Value := Obj.LineName;
Parameters.ParamByName('FLeaveTime').Value := FormatDateTime('HH:MMMM', Obj.LeaveTime);
Parameters.ParamByName('FSeatingPreset').Value := Obj.SeatingPreSet;
Parameters.ParamByName('FChildrenPreset').Value := Obj.ChildrenPreSet;
Parameters.ParamByName('FIntervalDays').Value := Obj.IntervalDays;
Parameters.ParamByName('FOriginalDate').Value := Obj.OriginalDate;
ExecSQL;
MConnection.CommitTrans;
Result := True;
except
MConnection.RollbackTrans;
Result := False;
end;
finally
MQuery.Free;
MConnection.Free;
end;
end;
end;
end;(我的工程应用代码)