Foxpro存储过程中数据类型不匹配
我想将 jobact 中插入的每条记录复制到新表 jobactupdates 中。我正在使用存储过程来实现此目的。两个表完全相同,并且列数相同。当我使用插入查询在 jobact 中插入数据时,存储过程失败并显示数据类型不匹配错误。
我的代码如下所示:
PROCEDURE insertData
INSERT INTO jobactupdates (jobcode ,jobdescr ,fileno ,port ,mastcode ,mastdescr ,mastdescr1 ,shipper ,goods ,unit1 ,qty ,unit ,vesname ,arremarks ,arrdate ,remarks ,docstat ,docdate ,blno ,bldate ,jastat ,rate ,demand ,received ,balance ,transpor,dldate);
VALUES(jobact.jobcode,jobact.jobdescr,jobact.fileno,jobact.port,jobact.mastcode,jobact.mastdescr,jobact.mastdescr1,jobact.shipper,jobact.goods,jobact.unit1,jobact.qty,jobact.unit,jobact.vesname,jobact.arremarks,jobact.arrdate,jobact.remarks,jobact.docstat,jobact.docdate,jobact.blno,jobact.bldate,jobact.jastat,jobact.rate,jobact.received,jobact.balance,jobact.transpor,jobact.dldate);
ENDPROC
I want to make a copy of every record inserted in jobact to a new table jobactupdates. I am using a stored procedure for this purpose. Both tables are exactly the same and have same no of columns. When I insert data in jobact using insert query then, the stored procedure fails and show the Data Type mismatch error.
My code looks like this:
PROCEDURE insertData
INSERT INTO jobactupdates (jobcode ,jobdescr ,fileno ,port ,mastcode ,mastdescr ,mastdescr1 ,shipper ,goods ,unit1 ,qty ,unit ,vesname ,arremarks ,arrdate ,remarks ,docstat ,docdate ,blno ,bldate ,jastat ,rate ,demand ,received ,balance ,transpor,dldate);
VALUES(jobact.jobcode,jobact.jobdescr,jobact.fileno,jobact.port,jobact.mastcode,jobact.mastdescr,jobact.mastdescr1,jobact.shipper,jobact.goods,jobact.unit1,jobact.qty,jobact.unit,jobact.vesname,jobact.arremarks,jobact.arrdate,jobact.remarks,jobact.docstat,jobact.docdate,jobact.blno,jobact.bldate,jobact.jastat,jobact.rate,jobact.received,jobact.balance,jobact.transpor,jobact.dldate);
ENDPROC
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
当您尝试将不适当的数据类型插入字段时,会发生数据类型不匹配错误。例如,如果您尝试将字符串存储到整数字段中。我会仔细检查表结构并确认它们是相同的。
另一件需要注意的事情是是否有任何 JOBACT 字段类型设置为整数 (AutoInc)。它们必须在 JOBACTUPDATES 表中设置为 Integer。否则您将收到“字段是只读的”错误消息。
A Data Type Mismatch error occurs when you try to insert an inappropriate data type into a field. For example, if you try to store a string into an integer field. I would double check the table structures and confirm that they are identical.
Another thing to be aware of is if any of the JOBACT field types are set to Integer (AutoInc). They will have to be set to just Integer in the JOBACTUPDATES table. Otherwise you will get a "Field is read-only" error message.
为了
字符字段:将其写入
''
标记中,数字字段:仅数字,例如 123,
日期字段:
{^yyyy-mm-dd}
(日期字段中也可以选择时间。)
For
Character fields: write them into
''
marks,Numeric fields: just numbers for example 123,
Date fields:
{^yyyy-mm-dd}
(There can also optionally be time in Date field.)
这是您的实际查询吗?如果是这样,您的 Columns 和 Values 子句包含不同的字段列表这一事实肯定会导致此错误:
。
Is this your actual query? If so, the fact your Columns and Values clauses contain different field lists has certainly caused this error:
.
我使用旧的 DOS FOXPRO 开发套件来查明 DBF 文件中的无效数据。我发现没有其他编辑器可以做到这一点。
我在 DOSBOX 中操作 FOXPRO。下面是我桌面图标中的命令行:
F:\DBF\DOSBox-0.74-3\DOSBox.exe f:\DBF\fpd26
这是我的私人提醒文件如何操作:
F:\DBF\DOSBox-0.74-3 \DOSBox.exe
mount C f:\DBF\fpd26
mount dg:\change.mat\DATA...
c:
fox.exe
use d:\TABLE...
brow
list to d:\stam.lst
使用任何文本编辑器,在 d:\stam.lst 中找到 **
返回到 Fox:
使用 d:\TABLE
goto [记录号]
brow
将 ** 替换为值
文件在 Fox 退出时保存
CTL F10 释放光标
I use an old DOS FOXPRO development kit to pinpoint invalid datum in a DBF file. I found no other editor that does this.
I operate FOXPRO within a DOSBOX. Here is the command line in my desktop icon:
F:\DBF\DOSBox-0.74-3\DOSBox.exe f:\DBF\fpd26
This is my private reminder file how to operate:
F:\DBF\DOSBox-0.74-3\DOSBox.exe
mount C f:\DBF\fpd26
mount d g:\change.mat\DATA...
c:
fox.exe
use d:\TABLE...
brow
list to d:\stam.lst
Using any text editor, find ** in d:\stam.lst
return to fox:
use d:\TABLE
goto [record number]
brow
replace ** with value
Files are SAVED at Fox QUIT
CTL F10 to free cursor