关于SQL使用的两个小问题(插入及修改)(50分)

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

wchal

Unregistered / Unconfirmed
GUEST, unregistred user!
to:各位富翁
我的问题如下:
问题1
我现有一个数据库为A 其中的A1字段我设为主索引。在此库的输入窗口中我可以通过SELECT
来判断A1字段可有重复。
但当我在修改窗口中如何确定当前库中没有重复的A1值呢?
问题2
现我在A库中输入记录后想插入至B库中,如果它们位置相同我可以通过下面的语句完成。
insert into A.db select * from B.db
但我的A/B两库不在同一目录中可有什么办法呢?
先谢谢各位!
 
问题一:你可以在BEFORPOST事件中用SELECT语句来判断,
看看newvalue的值是否重复就行了!
问题二:你把这两个表放到同一数据库中就行了!
 
1、你可用setkey
with Table1 do
begin
EditKey;
FieldByName('A1').AsString := 'CA';
if GotoKey then
begin
//存在
end
end;
2、你的问题有问题
insert into A.db select * from B.db,这句是把b中所有数据插入到a中,
这种操作必须是两个表的结构完全一样
在不同路径的问题就是直接加上路径就可以了
 
to:lbylby
问题一我觉得你的方法比较好。
问题二我没有办法放到同一个数据库中我这两个数据库必须在不同的目录中。目录的位置
不可以确定。

to:yanghai0437
问题一我觉得用SETKEY 比较烦,但这种方法确实可以。
问题二目录名我不清楚,因在安装时会变动。我不想写语句从DBE中读出目录。可否有其它方法。
 
to:lbylby
关于问题一你说的方法不行。如果我库中现在有这样两条记录
A1 。。。。。。
A 。。。。。。
B 。。。。。。
如果我将B记录进行修改将其A1 的值改成A
在beforpost之前用SELECT语句只能找到一条记录A1 为A 的。
 
在beforpost之前用SELECT语句只能找到一条记录A1 为A 的。

一条就说明了不能插入了吧。。已经存在了。。
 
问题2
可用相对路径,例
Select * from "../workdir/table1.db" AA
 
1、先选出来select count(*) from table where field ...
if count(*) > 0 then do something
 
后退
顶部