源码: MainForm.FormCreate: temp := Connection.open('COM1'); //打开串口 if not temp then temp := Connection.open('COM2'); if not temp then ShowMessage('通讯端口已被占用,请关闭相应的程序'); SendCard := TSendCard.Create;TSendCard.Create: CardData := TCardData.Create; DM := TDM.Create(Application); //建立DataModule单元,ADOQuery1在此建立 SafeNum := CardData.GetSafeNum; //这里涉及数据库操作 CardData.GetSafeNum: SQLStr := 'select Safe_Unit from Control where 1=1'; with ADOQuery1 do //报错 begin close; SQL.Clear; SQL.Add(SQLStr); end; qryConnect.Open; if DM.ADOQuery1.Eof then Result := 0 else Result := DM.ADOQuery1.FieldValues['Safe_Unit'];
设置好connectionstring
在sql添好语句
然后active:=true;
就ok
这些也可以杂程序中写出
还有你在设计的时候不要吧 ADOTABLE 打开 编译的的时候也不会出现
一直不明白是怎么会事 装了最新的MDAC 也没用 关注
看看它还报错么?如果不报错了帖出你的SQL和connectionString
MainForm.FormCreate:
temp := Connection.open('COM1'); //打开串口
if not temp then temp := Connection.open('COM2');
if not temp then ShowMessage('通讯端口已被占用,请关闭相应的程序');
SendCard := TSendCard.Create;TSendCard.Create:
CardData := TCardData.Create;
DM := TDM.Create(Application); //建立DataModule单元,ADOQuery1在此建立
SafeNum := CardData.GetSafeNum; //这里涉及数据库操作
CardData.GetSafeNum:
SQLStr := 'select Safe_Unit from Control where 1=1';
with ADOQuery1 do //报错
begin
close;
SQL.Clear;
SQL.Add(SQLStr);
end;
qryConnect.Open;
if DM.ADOQuery1.Eof then Result := 0
else
Result := DM.ADOQuery1.FieldValues['Safe_Unit'];