我用DBEXPRESS+SQLSERVER时候遇见一个问题
SQLSERVER表中有字段ID是自增长字段也是非空主键
用SIMPEDATASET.insert以后报错不能插入NULL字段
这个问题用ADO控件没问题 为什么DBEXPRESSS会不识别自增长字段?
SQLSERVER表中有字段ID是自增长字段也是非空主键
用SIMPEDATASET.insert以后报错不能插入NULL字段
这个问题用ADO控件没问题 为什么DBEXPRESSS会不识别自增长字段?
解决方案 »
- 还是"类"的一个定义问题!!!!!!!!!!!
- 如何判断路径是否正确
- 如何判断AdoTable是否处于Edit状态?
- 数据库问题:可不可以不安装Oracle客户端?
- 关于ListView中控制某列的宽度固定为零(即,相当于隐藏该列!)
- 请教一下各位大虾,哪里有QuickRpt.pas的源代码啊?
- 怎樣對計算字段求累計和﹖如差額是計算字段﹐要求累計差額﹐怎么辦﹖請各位高手指點﹗
- 请教关于使用socket和TstringList更新数据库的问题!
- 如何使用InstallShield Express制作安装文件
- 如何实现“金山词霸”的屏幕取词(好象是用鼠标钩子...忘了...)(解决即加分)
- 2个button,判断是哪个button按下,请教
- 有谁用delphi6写过Corba客户端的程序,用IOr的命名服务调用方式,重赏
AfterInsert/BeforePost 如何处理自增长字段?
CREATE GENERATOR GENRECORDID;
SET GENERATOR GENRECORDID TO 0;
…//创建存储过程
CREATE PROCEDURE GETRECORDID RETURNS (
detailid INTEGER
) AS BEGIN
detailid=gen_id(genrecordid, 1);
END;
我们假定我们使用一个名称为DetailTbl的表,并且该表中设置了永久字段,那么典型的代码段如下:
void __fastcall TDMForm::DetailTblAfterInsert(TDataSet *DataSet)
{
DetailTblDETAILID->Value=0;
}
//---------------------------------------------------------void __fastcall TDMForm::DetailTblBeforePost(TDataSet *DataSet)
{
if(DetailDS->State==dsInsert)
{
DetailIDSP->Prepare();
DetailIDSP->ExecProc();
DetailTblDETAILID->AsInteger=DetailIDSP->
ParamByName("detailid")->AsInteger;
}
}