1.在ide中我定义的字符串变量值太长,怎样换行?注意是在ide中。
var aa:string;
begin
aa:='dddddddddddddd
ddsd
dfdf'
end;
无效,怎么做?
2.前台delphi,后台sqlserver,用bde或ado连接,如何对数据库加锁(页锁,行锁)?
加完锁后如何解锁?
3.有一个表中就一条记录,记载的是当前使用的票据号码,每当打票据时就把这条记录的值+1,怎样避免多用户同时打印票据时,号码重号问题?应该加锁,但不知道怎么加?
4.tdatetime类型赋值时,我只能用以下方法赋值,觉得费劲,有简单办法否?
var
aa:tdatetime;
begin
aa:=strtodate('2004-01-24'); //要进行转换,有简单办法赋值否?
end;
var aa:string;
begin
aa:='dddddddddddddd
ddsd
dfdf'
end;
无效,怎么做?
2.前台delphi,后台sqlserver,用bde或ado连接,如何对数据库加锁(页锁,行锁)?
加完锁后如何解锁?
3.有一个表中就一条记录,记载的是当前使用的票据号码,每当打票据时就把这条记录的值+1,怎样避免多用户同时打印票据时,号码重号问题?应该加锁,但不知道怎么加?
4.tdatetime类型赋值时,我只能用以下方法赋值,觉得费劲,有简单办法否?
var
aa:tdatetime;
begin
aa:=strtodate('2004-01-24'); //要进行转换,有简单办法赋值否?
end;
begin
aa:='dddddddddddddd'
+'ddsd'
+ 'dfdf';
end;
var aa:string;
begin
aa:='dddddddddddddd'
+'ddsd'
+ 'dfdf';
end;
2.
你要求的加锁效果要怎样的?
3.
既然你用的是分布式的程序可以考虑这样
DataSetProvider+ClientDataSet这样连接后台数据库
然后设置DataSetProvider的 属性就可以了
如果你要详细的,可以参考李维先生的《Delphi高效数据库程序设计》
的第六章第一节吧!
4.
如果你要将一字符型的数据赋给日期型,我看也只好这样!
同时,请你注意:'2004-01-24'中的‘-’要看你的系统设置而定,
有时要这样:'2004/01/24'才可以的啊!
第一点俄可以这样:
=========================
var aa:string;
begin
aa:='dddddddddddddd'
... ...
aa:=aa+'ddsd'
... ...
aa:=aa+'dfdf';
end;
===============================
最终的效果一样,同时,更灵活一些
搂住,我漏了“ ;”的句末分隔符。
2.和3.其实是一个问题,就是避免多人操作时重号问题,难道这里没人做过c/s或b/s的吗?
4.对日期赋一个“指定”的初值,都可以怎样赋值?
加完锁后如何解锁?
update table with (TABLOCK) set ....
可以确保每次只有一个用户更改,操作完毕后解锁,其他更复杂的看看sqlserver帮助
我觉得应该这样:
aa:='dddddddddddddd'+#13+'ddsd'+#13+'dfdf';
至于加锁和解锁,好像只能在后台数据库设置。
select operid.operid from dual
3问题:我担心如果同时有2个以上用户操作,就会取出同一个号码,打印时就会重复,所以我要求加锁,要求读、写这条记录时都要加排他锁。
我觉得我说得够明白了吧
可以用序列(sequnce)的方式来解决。序列可以在数据库中直接建立,你可以设置初始值、最大值、最小值等等,而在调用号段时,就可以用"select 序列名.nextval as id from dual "直接在序列中取,这样可以保证不重号。注1:序列可以看成是一个表,每当你查询一次序列,就会触发一个动作,序列中的值永久性加1;
注2:这样做的机制是当一个客户端需要一个唯一的号码时,他就到数据库的序列中要一个号码,
数据库在给出号码的同时会在号码上加1,这样就不怕重号了。满意吗?