有两个数据表,DataSet.db ,和 temp_meas.db ,两个表都有Pat_ID,Counter字段,而且temp_meas.db
有且仅有这两个字段,想从Dataset.db中选出与temp_bh相同的Pat_ID, copy到temp_meas.db中, 语句如下,问题1:运行时出现错误提示对话框:Error Creating cursor handle.
问题2:temp_bh是一个变量,保存用户选择的一个人的编号,如代码所示,想把它与字段Pat_ID比较,构成where子句,但不知道该如何写到SQL语句中?
请各位教我?谢谢! implementationuses Diagnosis, Details, patient_choice, Sele_measure;var
TempQuery:TQuery;{$R *.dfm}.
.
.
procedure TPat_Data_Form.XP_Button3Click(Sender: TObject);
var
TempString:String;
.
.
.
TempQuery:=TQuery.Create(Self);
TempQuery.RequestLive:=True;
TempQuery.Close;
TempQuery.SQL.Clear;
TempString:= ' Insert Into temp_meas '; //1
TempString:=TempString+' Select Pat_ID,Counter ';
TempString:=TempString+' from DataSet.db where Pat_ID='+trim(temp_bh);
TempQuery.sql.text :=TempString;
TempQuery.Open;
.
.
.By the way, 如果将其中一句(//1)改为:
TempString:= ' Insert Into temp_meas Pat_ID,Counter ';
出现的错误提示框变成:Invalid use of keyword.
Token:Pat_ID,Counter
Line Number:1.
有且仅有这两个字段,想从Dataset.db中选出与temp_bh相同的Pat_ID, copy到temp_meas.db中, 语句如下,问题1:运行时出现错误提示对话框:Error Creating cursor handle.
问题2:temp_bh是一个变量,保存用户选择的一个人的编号,如代码所示,想把它与字段Pat_ID比较,构成where子句,但不知道该如何写到SQL语句中?
请各位教我?谢谢! implementationuses Diagnosis, Details, patient_choice, Sele_measure;var
TempQuery:TQuery;{$R *.dfm}.
.
.
procedure TPat_Data_Form.XP_Button3Click(Sender: TObject);
var
TempString:String;
.
.
.
TempQuery:=TQuery.Create(Self);
TempQuery.RequestLive:=True;
TempQuery.Close;
TempQuery.SQL.Clear;
TempString:= ' Insert Into temp_meas '; //1
TempString:=TempString+' Select Pat_ID,Counter ';
TempString:=TempString+' from DataSet.db where Pat_ID='+trim(temp_bh);
TempQuery.sql.text :=TempString;
TempQuery.Open;
.
.
.By the way, 如果将其中一句(//1)改为:
TempString:= ' Insert Into temp_meas Pat_ID,Counter ';
出现的错误提示框变成:Invalid use of keyword.
Token:Pat_ID,Counter
Line Number:1.
本来应该检索出两条记录的,可是只有一条被Insert 到目的数据表里,这又是怎么一回事呢?
TempString:=TempString+' Select Pat_ID,counter,StartDate,TotalCount,ErrorCount ';
TempString:=TempString+' from DataSet.db where Pat_ID='+''''+temp_bh+'''';
TempQuery.sql.text :=TempString;
TempQuery.ExecSQL;现在的代码是这样的了,明明DataSet.db中有两个Pat_ID=001的记录,可是当给temp_bh赋
001后,用上面的SQL只找得到一条记录,怎么可能有这种情况?奇怪奇怪真奇怪,到底问题在哪呢???
SQL刚学,很生疏
用open(返回结果集)
或者在运行时跟踪一下这个字符串的值,取select之后的字符串,在sqlexplore里执行看看。