我用delphi 7和foxbase 开发一个工资管理系统,(我也不想用foxbase,但是原来的系统就是)我现在想在程序里修改.dbf数据库表里的字段的(名称和)属性,用alter table tablename alter column columnname numeric(10,2), 失败! 用alter table tablename modify columnname numeric (10,2), 失败! 应该怎么办???
ACCESS 好用,但对FOXBASE ,总是失败,那另外一种语句描写方式是什么呢???
另: 1.delphi 中的sql语言是什么标准的 ,asni吗?
    2.如何在delphi中解决.dbf中软删除的问题? 我试了网上的几种方法,均无效.
    
期待您的解答, 最好能详细点,

解决方案 »

  1.   

    2.如何在delphi中解决.dbf中软删除的问题? 我试了网上的几种方法,均无效.
    use bde.pasDbiPackTable();//自己看一下帮助
      

  2.   

    这个东东,没做过,不过SQL语句都应该一样的的呀,检查看看是不是别的地方错了
      

  3.   

    哥们,试一下MODI STRU
    祝你好运!!
      

  4.   

    table1.FieldDefs.Items[0].Name := 'New';
    试试看
      

  5.   

    上面的兄弟,MODI STRU 是FOXBASE的语句,当然好用,问题是我用DELPHI 7开发数据库应用,想用程序实现,大量的数据库文件,如果用MODI STRU的话太麻烦了
      

  6.   

    1.你的概念理解的不对。sql 的标准不是取决于delphi,而且取决于数据库本身和数据库的驱动引擎。比如你用BDE访问dbf文件,那么这个sql取决于BDE的限制,你用ADO访问mssql,那么受ADO和mssql的限制,和delphi没任何关系,它只不过忠实地提交给数据库你的sql语句,至于能不能执行不是delphi的问题。2.按你的这个只能用BDE了,BDE提供了很多API,可以做到你的这个要求,
    DbiPackTable(); 可以真正的pack表,
    另外DbiRestruct(好像是这个名字)可以修改表的结构,就是你希望的alter table。
    使用前,请uses BDE
      

  7.   

    谢谢上面的师兄,你说得特别对sql 的标准不是取决于delphi。另外,我试用了你的方法,发现我的delphi 7中根本没有 bde.pas 没法用DbiPackTable()函数。还用,delphi 7中没了许多控件,与delphi 5相比,我现在特别想用quickreport做报表,rave不太好用,有没用delphi 5怎么办??谢谢!!!
      

  8.   

    这样把,你用SELECT INTO 就好了!!!
    select [选择的源表字段] INTO [目的表的字段名,要和前面对应] FROM [源表] WHERE [条件]