CoInitialize(nil);                       //初始化
AcHistory := TADOConnection.Create(nil);
AcHistory.ConnectionString := con;
AqHistory := TADOQuery.Create(nil);
AqHistory.Connection := AcHistory;sql.Add('Insert into history(day, time, [Fh_id], type, info, alert) values(:myDay, :myTime, :fhid, :type, :info, :alert)');
AqHistory.Parameters.ParamByName('myDay').Value := FormatDateTime('yyyy-mm-dd', now());
AqHistory.Parameters.ParamByName('myTime').Value := FormatDateTime('hh:mm:ss', now());
AqHistory.Parameters.ParamByName('fhid').Value := DBID;
AqHistory.Parameters.ParamByName('type').Value := leixing;
AqHistory.Parameters.ParamByName('info').Value := info;
AqHistory.Parameters.ParamByName('alert').Value := Alt;
try
   AcHistory.Open;
   ExecSQL;
Except
  exit;
end;
AcHistory.Close;
close;Aqhistory.Free;                       //free
AcHistory.Free;
CoUninitialize;
我这么写,但老是提示出错。
当我把sql语句改为sql.add('select * from history')时,没有提示出错,但没有返回数据集。这是为什么,是不是我哪里还有问题。

解决方案 »

  1.   

    CoInitialize(nil);                       
    AcHistory := TADOConnection.Create(nil);
    AqHistory := TADOQuery.Create(nil);//先创建,在链接A
    //AcHistory.ConnectionString := con; // 不要
    AqHistory.Connection := AcHistory;sql.Add('Insert into history(day, time, [Fh_id], type, info, alert) values(:myDay, :myTime, :fhid, :type, :info, :alert)');
    AqHistory.Parameters.ParamByName('myDay').Value := FormatDateTime('yyyy-mm-dd', now());
    AqHistory.Parameters.ParamByName('myTime').Value := FormatDateTime('hh:mm:ss', now());
    AqHistory.Parameters.ParamByName('fhid').Value := DBID;
    AqHistory.Parameters.ParamByName('type').Value := leixing;
    AqHistory.Parameters.ParamByName('info').Value := info;
    AqHistory.Parameters.ParamByName('alert').Value := Alt;
    try
       ExecSQL;
    Except
      exit;
    end;
    AcHistory.Close;
    Aqhistory.Free;                       //free
    AcHistory.Free;
    CoUninitialize;
      

  2.   

    to  wjlsmail(计算机质子) 
    //AcHistory.ConnectionString := con; // 不要这样我怎么和数据库连起来?
      

  3.   

    看错了,你的变量名字这么像 
    AcHistory := TADOConnection.Create(nil);
    AcHistory.ConnectionString := con; 
    AqHistory := TADOQuery.Create(nil);
    AqHistory.Connection := AcHistory;
      

  4.   

    try
       //AcHistory.Open; // 不用
       ExecSQL;
    还有参数类型指定也可以,用 .Value 也行吧
      

  5.   

    AcHistory.Open;
       ExecSQL;这两句改为:AcHistory.ExecSQL
      

  6.   

    我写清楚点
    adoconnection := TAdoConnection.create(nil);
    adoconnection.connectionstring := con;
    adoquery := TAdoQuery.create(nil);
    adoquery.Connection := adoconnection;
    接下来该怎么写?
      

  7.   

    就是通过adoquery来访问数据库中的某个表,并且select出记录集。和在主窗体里使用控件有什么不同吗?我按照常规的写法,编译没有提示出错,但是不能返回记录。