Foxpro存储过程中数据类型不匹配

发布于 2024-09-29 21:00:16 字数 891 浏览 7 评论 0原文

我想将 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

请远离我 2024-10-06 21:00:16

当您尝试将不适当的数据类型插入字段时,会发生数据类型不匹配错误。例如,如果您尝试将字符串存储到整数字段中。我会仔细检查表结构并确认它们是相同的。

另一件需要注意的事情是是否有任何 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.

许仙没带伞 2024-10-06 21:00:16

为了
字符字段:将其写入''标记中,
数字字段:仅数字,例如 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.)

暖阳 2024-10-06 21:00:16

这是您的实际查询吗?如果是这样,您的 Columns 和 Values 子句包含不同的字段列表这一事实肯定会导致此错误:

Insert Into ...
bldate,
jastat,
rate,
demand,
received,
balance ..

Values ...
jobact.bldate, 
jobact.jastat,
jobact.rate, 
jobact.received, <--
jobact.balance,  <--
jobact.transpor  <--

Is this your actual query? If so, the fact your Columns and Values clauses contain different field lists has certainly caused this error:

Insert Into ...
bldate,
jastat,
rate,
demand,
received,
balance ..

Values ...
jobact.bldate, 
jobact.jastat,
jobact.rate, 
jobact.received, <--
jobact.balance,  <--
jobact.transpor  <--

.

人│生佛魔见 2024-10-06 21:00:16

我使用旧的 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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文