elib 2.5 中dbgrideh的问题 (50分)

  • 主题发起人 主题发起人 yanghai0437
  • 开始时间 开始时间
Y

yanghai0437

Unregistered / Unconfirmed
GUEST, unregistred user!
如何动态创建access表
如何用Ado动态创建access数据库中的表,而且有一个主索引字段是自增长的
我已经解决了.
我问第二个问题,有人解决我可以加分
1、当我在dbgrideh中输入数据时,还没有输入完所有的列,在别的行随便
点击,总是出现“无法为更新定位行,一些值可能已在最后一次读取后
已更改。”,为什么?怎样解决
2、我想为dbgrideh的某个列指定默认值,当添加新的记录时可以自动添加默认值,
可以吗,怎样指定。
 
通过ADOQuery运行以下sql:

create table table-name(
field-name, data-type(length), null,
)
 
to netfool
是不是可以用Sql Server的脚本创建
 
像这个样子不正确
CREATE TABLE tablename (
[CID] [char] (30) NOT NULL ,
[CSV_Server] [char] (16) NOT NULL ,
[Phone_No] [char] (12) NOT NULL ,
[No_of_Retry] [int] NULL
)

像这个样子也不正确
CREATE TABLE tablename (
CID,char(30), NOT NULL ,
CSV_Server,char(16), NOT NULL ,
Phone_No,char(12), NOT NULL ,
No_of_Retry,int,NULL
)

我该怎么做,有人知道吗
 
create table TABEL1(
iID IDENTITY(1,1) PRIMARY KEY,
Field2 varchar(10) NOT NULL,
Field3 number )
 
在access里面如果没有创建主键,他会自动帮你建立一个ID,并自动设置为主键
所以你在建表的时候最好自己建立一个主键。
 
Query1.SQL.clear;
Query1.SQL.Text:='create table TABEL1'
+'(iID IDENTITY(1,1) PRIMARY KEY,'
+'Field2 varchar(10) NOT NULL,'
+'Field3 number)';
Query1.ExecSQL;
 
如何动态创建access表
如何用Ado动态创建access数据库中的表,而且有一个主索引字段是自增长的
我已经解决了.

貼出來讓大家瞧瞧!!!!
 
为某个列指定默认值可在数据库里设置
 
strCreate:= 'CREATE TABLE '+sCTablename+' ( '+
'id IDENTITY(1,1) PRIMARY KEY,';
strCreate:=strCreate+'zcbh Text(15),';//文本
strCreate:=strCreate+'year Text(8),';//文本
strCreate:=strCreate+'tbdw Text(50))';//文本
ADOCommand1.Connection := DBMD.ADOConnection;
ADOCommand1.CommandText :=strCreate;
ADOCommand1.Execute;
 
1.数据库设计的问题,比如某些字段的值设为不能为NULL且不能为零长字符串,
还有,一些数值的默认值的问题,比如在数据库中设为0,而DELPHI中不会取0,而会取NULL,
在更新时它就会检查原值是否与数据库中一样,NULL当然不等于0,更新出错.可以在OnPostError
事件中处理
2.可以在AfterInsert事件中处理
procedure TDBMDIChildForm.DataSetAfterInsert(DataSet: TDataSet);
//默认值
var
i:integer;
begin
inherited;
for i:=1 to DataSet.FieldCount-1 do
with DataSet.Fields do
case DataType of
ftdatetime:
Value:=date;
ftBoolean:
Value:=false;
ftSmallint, ftInteger, ftWord,ftFloat, ftCurrency:
Value:=0;
end;
end;
 
ysai说的好,第二个问题我是在beforepost事件中处理的
第一个问题我确实没有想到
 
后退
顶部