delphi如何为数据库自动增加字段? 我现在的软件需要和数据库连接,问题是我想在软件中实现增加表中的字段,也就是说,如果字段够的话,就写入现有字段中,如果字段不够就自动增加新的字段,并将提交的值写入这个新的字段?急等中! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 设计2个方面,一个是sql语句增加表字段, 二是在Delphi的DataSet增加字段。没有问题,不着急,有老冯在。 大多数据库可用sql语句:alter table 你的表 add (字段名,类型(长度))来增加表的字段 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; SQL: Alter Table TableID Add [Age] [int] Null 还有软件里面的Dbgrid也能自动更改吧! 不会有任何妨碍,Dbgrid当然自动更改. 呵呵,对不起,刚才在看点东西。目前的字段数。Delphi: DataSet.FieldCountSQL: select count(1) 字段数目 from syscolumns a, sysobjects b where a.id = b.id and b.name = 'Tableid' 先帮我解决这个问题: 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;点保存时报‘非法访问内存’,晕??有时候可能要增加字段,暂没用。 查来查去,原来问题出在这:ADOConnection1.ConnectionString:='Provider=SQLOLEDB.1;Password='+ pwd+';Persist Security Info=True;User ID='+ User_Id+';Initial Catalog='+Initial_Catalog +';Data Source='+Data_Source;这段代码如果我去掉变量,就行的,可是这样子就不够灵活了呀!和读取文件应该没关系吧!我都试过了,四个变量的值都正确的! 你的pwd是不是加过密的,你可以试试加密的过程,肯定是在寻出问题了。 关于IDFTP 下载整个文件夹及子文件夹的问题 在delphi中如何实现这样的报表用grid++ 有关delphi 的package包的问题,请教各位大侠们 我想知道怎么样把fastreport产生的报表保存为PDF格式 大家好,问一个组件安装问题。。 按钮指向问题。。 高手帮帮忙 我应用sqlserver2000帮助里的语句都不行,why? 在线等待.... 为何我用ASPACK压缩后的EXE文件,再执行会出错内存错误? 谁知道NMURL是什么控件,高分相送. DBLookupComboBox SQL语句用变量居然无法连接?
alter table 你的表 add (字段名,类型(长度))来增加表的字段
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;
Alter Table TableID Add [Age] [int] Null
目前的字段数。
Delphi:
DataSet.FieldCount
SQL:
select count(1) 字段数目 from syscolumns a, sysobjects b where a.id = b.id and b.name = 'Tableid'
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;点保存时报‘非法访问内存’,晕??
有时候可能要增加字段,暂没用。
pwd+';Persist Security Info=True;User ID='+
User_Id+';Initial Catalog='+Initial_Catalog
+';Data Source='+Data_Source;这段代码如果我去掉变量,就行的,可是这样子就不够灵活了呀!和读取文件应该没关系吧!我都试过了,四个变量的值都正确的!