我现在的软件需要和数据库连接,问题是我想在软件中实现增加表中的字段,也就是说,如果字段够的话,就写入现有字段中,如果字段不够就自动增加新的字段,并将提交的值写入这个新的字段?急等中!

解决方案 »

  1.   

    设计2个方面,一个是sql语句增加表字段, 二是在Delphi的DataSet增加字段。没有问题,不着急,有老冯在。
      

  2.   

    大多数据库可用sql语句:
    alter table 你的表 add (字段名,类型(长度))来增加表的字段
      

  3.   

    SQL:
      Alter Table TableID Add [Age] [varchar] (50) COLLATE Chinese_PRC_CI_AS NullDelphi:
      with TIntegerField.Create(ADOTable) do
      begin
        Size := 50;
        FieldName := 'Age';
        FieldKind := fkData;
        DataSet := ADOTable;
      end;
      

  4.   

    SQL:
      Alter Table TableID Add [Age] [int] Null
      

  5.   

    还有软件里面的Dbgrid也能自动更改吧!
      

  6.   

    不会有任何妨碍,Dbgrid当然自动更改.
      

  7.   

    呵呵,对不起,刚才在看点东西。
    目前的字段数。
    Delphi:
      DataSet.FieldCount
    SQL:
      select count(1) 字段数目 from syscolumns a, sysobjects b where a.id = b.id and   b.name = 'Tableid'
      

  8.   

    先帮我解决这个问题:
        try
      pwd:=myinifile.ReadString('setup','password','');
      Data_source:=myinifile.ReadString('setup','Data_Source','127.0.0.1');
      Initial_Catalog:= myinifile.ReadString('setup','Initial_Catalog','DataBase');
      User_Id:=myinifile.ReadString('setup','User_Id','user');
      ADOConnection1.ConnectionString:='Provider=SQLOLEDB.1;Password='+
      pwd+';Persist Security Info=True;User ID='+
      User_Id+';Initial Catalog='+Initial_Catalog
      +';Data Source='+Data_Source;
      Adoconnection1.Connected := true;
      Adoquery1.SQL.Add('insert into leechdom_Note (buy_date,Drug_Name,Spec,Dose,Units,'
                     +'Amount,Buy_price,Buy_Inc,Produce_cor,Batch_Num,Period_of_val'
                     +'License_Num,Quality_Sta,Conclusion,Inspector,Sign_Date,Memo)'
                     +'Values(left(getdate(),10),'+EdtName.text+','+EdtSpec.text+','
                     +EdtDose.text+','+EdtUnit.text+','+EdtNum.text+','+EdtBuy.text+','
                     +EdtInc.text+','+EdtCor.text+','+EdtBat.text+','+EdtPer.text+','
                     +EdtLic.text+','+EdtQua.text+','+EdtCon.text+','+EdtMem.text
                     +')');
       Adoquery1.Open;
       adoquery1.Destroy;
       except
         adoquery1.Destroy;点保存时报‘非法访问内存’,晕??
    有时候可能要增加字段,暂没用。
      

  9.   

    查来查去,原来问题出在这:ADOConnection1.ConnectionString:='Provider=SQLOLEDB.1;Password='+
      pwd+';Persist Security Info=True;User ID='+
      User_Id+';Initial Catalog='+Initial_Catalog
      +';Data Source='+Data_Source;这段代码如果我去掉变量,就行的,可是这样子就不够灵活了呀!和读取文件应该没关系吧!我都试过了,四个变量的值都正确的!
      

  10.   

    你的pwd是不是加过密的,你可以试试加密的过程,肯定是在寻出问题了。