当前位置:主页>销售管理软件> 列表

这句代码哪里错了? 找进销存数据库

记账软件版1楼: with DM.DataModule2.tbl1 do
begin
Append ;
FieldByName(''123'').AsString :=Edt1.Text ;
Post ;
end;
Showmessage(''数据提交成功'');
edt1.Text :='''';
edt1.SetFocus;
tbl1是Tadotable组件
123字段是char字符型,长度30
编译产生错误信息:Project1.exe raised exception class EVariantTypeCastError with message '' Could not convert varant of type(NULL) into type (String)''.Process stopped.
这是什么意思?

2楼: 有的字段不能为空,或者不能插入Null值
你的数据表中有多个字段,但你添加记录只添加了一个字段的值,其他字段不能为NULL
你可以这样操作:
DM.DataModule2.tbl1.AppendRecord([''value1'','''','''']); 如药品进销存管理

3楼: edit1.text的内容是空值. 空值不能转化为string类型. 试试 .value .
最好用拼接sql语句插入, 或者用 传入参数的形式. 比较安全.

4楼: FieldByName(''123'').value :=Edt1.Text ;

5楼: FieldByName(''123'').value :=Edt1.Text ;用这句产生的错误也一样。


请问这句要怎么操作?我的字段是123,数据表里有两个字段。
DM.DataModule2.tbl1.AppendRecord([''value1'','''','''']);

6楼: 自已顶先!

记账软件版7楼: 如果有两个字段,且123是第一个字段的话:
DM.DataModule2.tbl1.AppendRecord([edit1.text,'''']);
这句在程序中直接调用就行了。其他代码,什么也不用加。

8楼: 123是第二个字段
不行呢,还是出现错误:Project1.exe raised exception class EVariantTypeCastError with message '' Could not convert varant of type(NULL) into type (String)''.Process stopped.
怎么办呀?我弄不好了!

9楼: FieldByName(''123'').value :=Edt1.Text ;

10楼: 其它非空的字段,也要像下面一样赋值才行
FieldByName(''123'').AsString :=Edt1.Text ;

11楼: 首先判断edit1.text是否为空,是的话就不用插入了.不是在post.

12楼: with DM.DataModule2.tbl1 do
begin
Append;//这个改为insert;
FieldByName(''123'').AsString :=Edt1.Text ;
Post ; 如进销存数据库

13楼: begin


Append;//这个改为insert;首先应该把table设置为插入状态
FieldByName(''123'').AsString :=Edt1.Text ;
Post ;

记账软件版14楼: 关键是下边一句
// FieldByName(''123'').AsString :=Edt1.Text ;
Parameters.ParamByName(''你的字段名'').AsString :=Edt1.Text ;
看你等意思是追加纪录,即此时''123''应该是你的变量名,应该上句一样
作为SQL的变量处理;

15楼: 不好意思,没说清楚
// FieldByName(''123'').AsString :=Edt1.Text ;
Parameters.ParamByName(''你的字段名'').AsString :=Edt1.Text ;
看你等意思是追加纪录,即此时''123''应该是你的要插入数据库的字段名,应该用上句
^^^^^^^^^^^^^^^^^^^^
作为SQL的变量来处理;

16楼: 好惨呀!我的帐户号已经用了有一年的时间了。今天上来看到(其实从昨天就开始了):“请确认帐号”。我那里还记得验证码了!
我的邮箱里也没有了。
我试着又输入一个备用邮箱。可使,没有验证码发送!
我该怎么办?
我的积分已经有将近1500分了。。。
分,倒是不重要,总要的的是我的问题!不能提问题,也不能看以前的问题了!

17楼: 发我邮箱,帮你确认下

18楼: 你的123字段应该设置为不允许NULL就可以了

19楼: 我又发现了一个问题。我现在想通过button1来实现尾数00001的自动加1,下面这条语句要怎么改下才好?


Edit1.Text:=FormatDateTime(''SG-YYYY-MM-DD-00001'',Now);

20楼: 接受答案了.