1: 有个字段可以为空, 也可以有值, 但是如果有值的话必须唯一
我创建unique index的时候如果有几条记录都为空,他就报错:不能重复,怎么办?
2: ado 中,recordset的update方法可以立刻返回么?用什么方法
我先addnew后,上传了一个比较大的文件,可是系统是时实的,需要立刻响应怎么办? 不考虑多线程的情况? 还有, stream.loadfromfile 有什么办法也可以立刻返回么? 原因同上
谢谢了
我创建unique index的时候如果有几条记录都为空,他就报错:不能重复,怎么办?
2: ado 中,recordset的update方法可以立刻返回么?用什么方法
我先addnew后,上传了一个比较大的文件,可是系统是时实的,需要立刻响应怎么办? 不考虑多线程的情况? 还有, stream.loadfromfile 有什么办法也可以立刻返回么? 原因同上
谢谢了
先上传再ADDNEW不行吗?
recordset的update方法可以立刻返回么?用什么方法
这是什么意思啊,是不是可以refresh一下啊
我创建unique index的时候如果有几条记录都为空,他就报错:不能重复,怎么办?"
这个是主键,必须有值且唯一。
我创建unique index的时候如果有几条记录都为空,他就报错:不能重复,怎么办?"不要设置唯一索引。写入时用代码检查:
cn.execute "insert into yourtable select * from othertable where field1 not in(select field1 from yourtable)"或set rs = cn.execute("select * from yourtable where field1='" & text1 & "'")
if rs.eof then
rs.addnew
rs!field1 = text1
......
rs.update
else
msgbox "重复记录"
end if
哎。想了半天没有决定你用的是access么?.addnew这种方法偶不建议使用,用SQL语句最好
你要想马上返回,可以用事务试一下,应该可以的关于第一个问题,偶决定了用。
因为偶认为这个问题是你设计的问题
create Proc test
@a_id char(6),
@b_name varchar(50),
@result char(25) OUTPUT
as
select a_id from table where a_id = @a_id
if @@rowcount<>0
begin
SELECT @result='FAIL'
RETURN
end
else
begin transaction
BEGIN
insert into table(a_id,b_name) VALUES (@a_id,@b_name)
if @@error<>0
begin
ROLLBACK TRANSACTION
SELECT @result='FAIL'
RETURN
end
else
begin
COMMIT TRANSACTION
SELECT @result='GOOD'
end
ENDend
在VC中是这样写的
cpconn->Execute(_bstr_t(strSQLInsert),NULL,adAsyncConnect);
cpconn是我的数据库连接对象
翻译成VB因该是
cpconn.execute(strSQL,adAsyncConnect)
你试试
以前是考虑到别人可能会去修改数据库,现在不管了, 如果他不用我的程序照成的重复也不管了, 谁叫他不听话了, 决定采用 of123() 的方法了,
存储过程我不熟悉,不过我想,我刚开始接触数据库, 能少用还是少用把, 何况也不是很大问题,就程序中判断下吧:)
问题2想了下还是不行, 即便是异步模式,试了下, stream.loadfromfile等还是要时间的,
而且很难处理,我想直接用过一个程序来做拉。 然后我的住程序调用他, 他只负责上传我生成的问题, 多进程解决了。 再次谢谢各位,以后有什么问题还到这里来问