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;

解决方案 »

  1.   

    var aa:string;
    begin
    aa:='dddddddddddddd'
        +'ddsd'
         + 'dfdf';
    end;
      

  2.   

    1.//抄楼上的 
      var aa:string;
      begin
      aa:='dddddddddddddd'
          +'ddsd'
          + 'dfdf';
      end;
    2.
      你要求的加锁效果要怎样的?
    3.
      既然你用的是分布式的程序可以考虑这样
        DataSetProvider+ClientDataSet这样连接后台数据库
      然后设置DataSetProvider的 属性就可以了
      如果你要详细的,可以参考李维先生的《Delphi高效数据库程序设计》
      的第六章第一节吧!
    4.
      如果你要将一字符型的数据赋给日期型,我看也只好这样!
      同时,请你注意:'2004-01-24'中的‘-’要看你的系统设置而定,
      有时要这样:'2004/01/24'才可以的啊!
      

  3.   

    在补充一下:
    第一点俄可以这样:
    =========================
    var aa:string;
      begin
        aa:='dddddddddddddd'
        ... ...
        aa:=aa+'ddsd'
        ... ...
        aa:=aa+'dfdf';
      end;
    ===============================
    最终的效果一样,同时,更灵活一些
      

  4.   

    啊啊  Sorry!
    搂住,我漏了“ ;”的句末分隔符。
      

  5.   

    1.在bcb中加\就可以,但delphi不方便。
    2.和3.其实是一个问题,就是避免多人操作时重号问题,难道这里没人做过c/s或b/s的吗?
    4.对日期赋一个“指定”的初值,都可以怎样赋值?
      

  6.   

    2.前台delphi,后台sqlserver,用bde或ado连接,如何对数据库加锁(页锁,行锁)?
    加完锁后如何解锁?
    update table with (TABLOCK) set ....
    可以确保每次只有一个用户更改,操作完毕后解锁,其他更复杂的看看sqlserver帮助
      

  7.   

    我不同意几位楼上的关于第1个问题的解法。
    我觉得应该这样:
    aa:='dddddddddddddd'+#13+'ddsd'+#13+'dfdf';
    至于加锁和解锁,好像只能在后台数据库设置。
      

  8.   

    票据号问题,可以采用数据库的自增变量的思路解决.如ORACLE中
    select operid.operid from dual
      

  9.   

    请注意1问题中:“注意是在ide中”这句话
    3问题:我担心如果同时有2个以上用户操作,就会取出同一个号码,打印时就会重复,所以我要求加锁,要求读、写这条记录时都要加排他锁。
    我觉得我说得够明白了吧
      

  10.   

    2和3其实是为了解决票据重号问题吧。建议不要用那种方式,也就是说那个表和那个表中的那条唯一的记录没有存在的必要,因为数据库早就为你提供了解决方案!
       可以用序列(sequnce)的方式来解决。序列可以在数据库中直接建立,你可以设置初始值、最大值、最小值等等,而在调用号段时,就可以用"select 序列名.nextval as id from dual "直接在序列中取,这样可以保证不重号。注1:序列可以看成是一个表,每当你查询一次序列,就会触发一个动作,序列中的值永久性加1;
    注2:这样做的机制是当一个客户端需要一个唯一的号码时,他就到数据库的序列中要一个号码,   
    数据库在给出号码的同时会在号码上加1,这样就不怕重号了。满意吗?