小编LGr*_*nin的帖子

Delphi XE2:如何传递空值的字段?

我正在将应用程序从Delphi 5转换为Delphi XE2,并遇到了使用BDE的情况.

在Delphi XE2中,他不接受传递null为一个外键的字段,后面是这个当前在Delphi 5中工作的方式:

ParamByName('id').datatype: = ftInteger;
Run Code Online (Sandbox Code Playgroud)

使用BDE在Delphi XE2中发生的错误:在表YY中的外键"XX"的主键值中

使用相同的错误以下列方式进行测试:

ParamByName('id').datatype: = ftInteger;
ParamByName('id').value: = NULL;

ParamByName('id').DataType: = ftstring;
ParamByName('id').clear;

ParamByName('id').DataType: = ftstring;
ParamByName('id').Bound: = true;

ParamByName('id').Value: = null;

ParamByName('id').IsNull;
Run Code Online (Sandbox Code Playgroud)

如何传递空值的字段?

更新:

数据库:

CREATE TABLE TEST_1 (
    ID_1 INTEGER NOT NULL,
    ID_TEST_2 INTEGER NULL,
    DESC_1 VARCHAR(10) NULL,
    PRIMARY KEY (ID_1)
);

CREATE TABLE TEST_2 (
    ID_2 INTEGER NOT NULL,
    DESC_2 VARCHAR(10) NULL,
    PRIMARY KEY (ID_2)
);

ALTER TABLE TEST_1 ADD FOREIGN KEY FK_TEST(ID_TEST_2) REFERENCES TEST_2(ID_2);
Run Code Online (Sandbox Code Playgroud)

德尔福XE2:

Close;
SQL.Clear; …
Run Code Online (Sandbox Code Playgroud)

delphi nullif

3
推荐指数
1
解决办法
4672
查看次数

标签 统计

delphi ×1

nullif ×1