使用本地表时,在插入一记录时出现的问题(100分)

  • 主题发起人 主题发起人 xfh
  • 开始时间 开始时间
X

xfh

Unregistered / Unconfirmed
GUEST, unregistred user!
我在本地做了以下三个表:sbk_tblogin.DB(name A,zhangh A),
sbk_qx.db(name A,mkmc A,zt1 L,zt2 L,zt3 L),sbk_qx_mk(mkbh A,mkmc A)
---A表示alpha类型,L表示logical类型
当我运行如下程序时出错:

with query1 do
begin
close;
sql.clear;
sql.Add('insert into sbk_qx select b.MKMC,a.NAME,true,true,true from sbk_tblogin a,sbk_qx_mk b where a.NAME=:dd');
parambyname('dd').asstring:=table1.fieldbyname('NAME').asstring;
execsql;
end;

(table1打开表sbk_tblogin)
请问为什么?
 
WHERE子句不对吧,你的A,B库有条件关联吗?没有的话计算机就不能判断你的
B.MKMC选出的是什么,应加上A,B库中的关键字段关联,EG: WHERE A.NAME=:
DD AND A.ID=B.ID
 
WHERE子句不对吧,你的A,B库有条件关联吗?没有的话计算机就不能判断你的
B.MKMC选出的是什么,应加上A,B库中的关键字段关联,EG: WHERE A.NAME=:
DD AND A.ID=B.ID (ID只是假设字段 你的A,B库中好像没有对应字段,应修改库结构)
 
WHERE子句不对吧,你的A,B库有条件关联吗?没有的话计算机就不能判断你的
B.MKMC选出的是什么,应加上A,B库中的关键字段关联,EG: WHERE A.NAME=:
DD AND A.ID=B.ID (ID只是假设字段 你的A,B库中好像没有对应字段,应修改库结构)
 
这两个库之间没有关联,我发现当如下写时,不会出错
sql.Add('insert into sbk_qx select b.MKMC,a.NAME,true,true,true from sbk_tblogin a,sbk_qx_mk b where a.NAME="dd"')
 
你的sbk_tblogin.name已有着落(已用where a.name=:'dd'限定),但sbk_qx_mk.name
还没着落呢!总不见得把sbk_qx_mk库内所有记录的mkmc都选入Select吧!
赶快加上一个限定条件。
eg. WHERE A.NAME=:DD AND B.mkmc=:'bb'。(bb表示某个值)
如果要让lonin的名称影响 sbk_qx_mk里的mkmc字段的选择,就要用
WHERE A.NAME=:DD AND B.XX1=:A.XX2
(xx1和xx2是指两个表的关联字段,如登入ID号等)。这就是关联。
 
多人接受答案了。
 
后退
顶部