真的的pb编程高手,请你们进来走走!!谢谢!
Bind parameter value for ':20' is too big (3)
No changes made to database.
INSERT INTO "t_jzgjbxx" ( "jzg_id", "jzgxm", "xb", "bm_id", "jg_id", "zw_id", "zc_id", "xl_id", "csrq", "txdz", "yzbm", "gl", "drsj", "dcsj", "rysf", "gzzd", "zgxl", "sfsz", "szzw", "sfzd", "zdsj", "sfbzr", "sfyx", "sfdzld" ) VALUES ( ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,)
任然是这个错误,我是通过定义结构,在传递的参数。大概是这样的:dw_1.object.[字段名][行号]=结构名.结构变量。我在“保存”时,数据窗口的行里面显示了数据的,但是就是提交不成功!(说明我定义的结构是将数据传入到我的数据窗口了的,只是没有办法提交,提示的错误就是上面的错误)
请问咋个办,谢谢各位大哥
问题点数:0、回复次数:13Top
1 楼sure_java()回复于 2004-12-01 15:08:24 得分 0
Bind parameter value for ':20' is too big (3)
No changes made to database.
INSERT INTO "t_jzgjbxx" ( "jzg_id", "jzgxm", "xb", "bm_id", "jg_id", "zw_id", "zc_id", "xl_id", "csrq", "txdz", "yzbm", "gl", "drsj", "dcsj", "rysf", "gzzd", "zgxl", "sfsz", "szzw", "sfzd", "zdsj", "sfbzr", "sfyx", "sfdzld" ) VALUES ( ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,)
任然是这个错误,我是通过定义结构,在传递的参数。大概是这样的:dw_1.object.[字段名][行号]=结构名.结构变量。我在“保存”时,数据窗口的行里面显示了数据的,但是就是提交不成功!(说明我定义的结构是将数据传入到我的数据窗口了的,只是没有办法提交,提示的错误就是上面的错误)
请问咋个办,谢谢各位大哥
Top
2 楼balloonman2002()回复于 2004-12-01 15:10:41 得分 0
估计是你要插入20这个数字都某个数值型字段,结果你INSERT时语句错误的写成了字符串':20' ,因此在字符串转换为数字时由于有冒号:,导致数值溢出,提示TOO BIG,或者是你要插入一个字符字段,你插入的是':20' ,宽度超出列宽,导致TOO BIG,这个具体看你的字段类型,因此建议:
如果是要插入数字,可以:
long ll_tmp
ll_tmp = 20
insert into "x" values(:ll_tmp);
如果是要插入字符,可以:
string ls_tmp
ls_tmp = "20"
insert into "x" values(:ll_tmp);
不要人为的单独加其他的单引号或冒号,系统会自动加的Top
3 楼sh_zll()回复于 2004-12-01 15:20:41 得分 0
不知道你具体用的什么,我用的是pb9和sql2000,一般我是用dw的update保存数据窗口中的数据到数据库的;
1.右键单击数据窗口dw_1,点击Modify DataWindow进入datawindow.
2.菜单上rows一项选择单击update properties
3.选择update.窗口右上角table to update输入你所要存进数据的表t1(数据窗口dw_1应该有类似于select a,b,c from t1的sql语句或存储过程与表t1相对应,一般select 全部列,可以避免很多错误,工具栏有个SQL,点击里面写SQL语句的)
左下角updatable columns选择要保存的列,右下角unigue key column选择表的主键(一般为表的id)
4.cmd_save,保存命令中:
if dw_1.update()=-1 Then
rollback;//回滚
return
end if
commit;//提交
MessageBox("提示","数据保存成功!")
另外,请检查一下定义的几个地方的列的数据类型和数据长度是否一致。
我也用了PB没多久。大致意思是这样,可能不是很准确,请见谅。Top
4 楼sure_java()回复于 2004-12-01 16:53:50 得分 0
非常感谢您的详细解释。我这边都没有问题:我原来做过,没有问题的,但是这次就有问题,不知道咋个办拉。五五……Top
5 楼mnsiii(水流花谢两无情)回复于 2004-12-01 21:41:34 得分 0
这个你要查出那里的错误,你直接使用数字试验一下,如果没问题就说明你的结构中的某个变量除了问题。一般这个情况主要是你的格式有问题,仔细检查一下!Top
6 楼sun1976(嫁给我,你就是我的一妾)回复于 2004-12-02 11:07:40 得分 0
sfzd不够长
Top
7 楼wlineGG(一头雾水)回复于 2004-12-02 21:14:23 得分 0
还有一个办法,就是将dw.update()改写为:dw.saveas(),然后在弹出的窗口提示输入文名时,选择保存为SQL然后再去看这个SQL文件,就可以找出是什么原因了。百试百灵的哦!Top
8 楼wsx2005(生性好学)回复于 2004-12-10 14:51:41 得分 0
sqlca.sqlerrtext错误全中文显示哦Top
9 楼tmxkdldw(tmxkdldw)回复于 2004-12-13 11:36:39 得分 0
这个问题俺会,不过不是高手.嘿嘿Top
10 楼jxjrsuibian(奔三啦!)回复于 2005-01-08 16:24:26 得分 0
我碰到这种问题往往都是这样调试的:在数据窗口的sqlpreview事件中把sqlsyntax参数弹出或写到文件中,一看基本上就有数了,如果还不行就把sql拷到数据库画板中一执行错误就很清楚了Top
11 楼freedom2001(天翔)回复于 2005-01-08 21:32:28 得分 0
还是想办法把SQL打出来,然后字段和值对照看一下。
Bind parameter value for ':20' is too big (3)明显是说字段太长了
还有
INSERT INTO "t_jzgjbxx" ( "jzg_id", "jzgxm", "xb", "bm_id", "jg_id", "zw_id", "zc_id", "xl_id", "csrq", "txdz", "yzbm", "gl", "drsj", "dcsj", "rysf", "gzzd", "zgxl", "sfsz", "szzw", "sfzd", "zdsj", "sfbzr", "sfyx", "sfdzld" ) VALUES ( ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,)
你自己不知道看这个能不能看出问题来,最后多了个,Top
12 楼ouyangwu(独者)回复于 2005-01-09 22:37:57 得分 0
楼上那么多方法,应该查出来了吧,呵
如果说原因的话,我想 一定是balloonman2002(http://blog.csdn.net/balloonman2002) 说的
“估计是你要插入20这个数字都某个数值型字段,结果你INSERT时语句错误的写成了字符串':20' ”这种原因
Top
13 楼zlfh(千江月)回复于 2005-01-11 10:31:40 得分 0
字段长度不够,具体哪个要自己去找,别人无法帮忙的. 可以试着输出你要保存的dw的数据,一一查看.Top




