为什么ORACLE中的NUMBER长度与在DELPHI中通过TABLE组件的Fields[j].DataSize取得的数据长度不一致(DELPHI中不管怎么样,都是8位)。而且不能区分VARCHAR2和CHAR,这两种类型对应的DELPHI类型都是STRING。有什么解决的办法吗???

解决方案 »

  1.   

    区分char和VARCHAR2时,加trim即可
      

  2.   

    不太清楚你批的区分varchar2和char是什么意思,在ORACLE中,char和VARCHAR2都是字符串,不同的是可存储长度不同,并且VARCHAR2是可变长度,而CHAR在ORACLE中是固定长度,在ORACLE同时使用CHAR和VARCHAR2时,CHAR自动转为VARCHAR2类型
    而DELPHI中CHAR是单个字符,除非用字符数组,string是可变类别,由DELPHI自动动态分配内存的,不知道你指的用DELPHI区分ORACLE中的ChAr和VARCHAR2是指的什么
      

  3.   

    我在做一个通过DELPHI连接到一个ORACLE数据库,根据当前数据库已经有的东西,比如表单,视图等,生成建立该数据库的SQL脚本。
    不过前一个问题已经解决了,我通过读取数据库的字典就可以了
    不过还有一个问题,通过数据字典读取的NUMBER类型的长度都是22,怎么办??
      

  4.   

    恩,所有问题我都自己解决啦,不过还是谢谢各位的帮助,本来是应该给你们分的,不过我还有个小问题,就是在ORACLE中建立表单的时候,怎么指定表空间,我是指SQL语句。这个问题解决了我就给分,可以吗??