两个SQL语句的问题,请教高人,不过分不够了,只剩85分,请您可别嫌弃呀!(50分)

  • 主题发起人 主题发起人 water
  • 开始时间 开始时间
W

water

Unregistered / Unconfirmed
GUEST, unregistred user!
提两个问题:
1.在Query中用如下的SQL语句
CREATE TABLE "Month.db"
( MnKey NUMERIC(10,2),
MnPrNum NUMERIC(10,2),
MnPrName CHAR(10),
MnCurNum CHAR(30),
MnPrMoney MONEY,
MnDate CHAR(8),
MnCountVal SMALLINT,
MnCvMoney MONEY,
MnCvLXMoney MONEY,
PRIMARY KEY (MnKey)
)
创建了个空表后,总要提示"not create currous handle",
但表实际上已经成功创建,如何能把这个错误提示去掉呢?

2.有两个表D,M,为主从关系,在上面的Month表创建完成之
后,如下操作:

Insert into "Month.db"
(MnKey,MnPrNum,MnPrName,MnCurNum,MnPrMoney,MnDate,MnCountVal,MnCvMoney,MnCvLXMoney)
Select D.PrNum,M.PrNum,M.PrName,M.PrCurMoney,D.CvDate,D.CvCountVal,D.CvMoney,D.CVLXMoneyFrom "PrMaster.DB" M,"PrDetail.DB" D
Where M.PrNum = D.PrNum

总提示说参数错误,Why?

请大侠指教!!
 
1 因为你用的是query.open,如果改为query.ExecSQL就对了,
2 你insert的值在哪?想直接用查询的结果往里添不能这样写吧
 
1、用
try
query1.ExecSql;
finally
query1.close;
end;

2、应为
Insert into Month.db
(MnKey,MnPrNum,MnPrName,MnCurNum,MnPrMoney,MnDate,MnCountVal,MnCvMoney,MnCvLXMoney)
values (
Select D.PrNum,M.PrNum,M.PrName,M.PrCurMoney,D.CvDate,D.CvCountVal,D.CvMoney,D.CVLXMoneyFrom "PrMaster.DB" M,"PrDetail.DB" D
Where M.PrNum = D.PrNum)

 
1. kchsun说的对.
2. paradox不知道支持这么用吗? D.CVLXMoneyFrom中的From前应该有空格, 不是这个
问题吧?
如果不支持, 只好先select .. from ... where..
然后在遍历添加了:-(
 
1. query.ExecSQL
2.
Insert into "Month.db"
Select D.PrNum,M.PrNum,M.PrName,M.PrCurMoney,D.CvDate,D.CvCountVal,
D.CvMoney,D.CVLXMoney
From "PrMaster.DB" M,"PrDetail.DB" D
Where M.PrNum = D.PrNum
 
1.用query.open会返回一个数据集,而create table并没有数据返回
所以会出现不能建立游标句柄的错误,
Quert.execSQL即可
 
巳经搞定,问题出在新建的Month.DB中有一个字段类型和
prDetail.DB中的一个字段类型不一样。
哎,这是粗心的错误,不好意思.
多谢大家!
 
后退
顶部