又一高分送给大哥们:有事想求!!

sure_java 2004-11-29 10:26:41
我在保存我的数据时候:出现错误对话框如下,出现下面的原因可能是什么导致的???谢谢大哥了(初学者留)
Bind parameter value for ':7' is too big(8)
No change made to database!
insert into t_jzgjbxx("t_id","name") values (???????????)
(注:)我用的结构来存我的数据,通过参数提交数据!
...全文
98 点赞 收藏 12
写回复
12 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
sure_java 2004-12-01
ballonman:非常干谢你的建议,但是20不是我插入的数据,当然不是什么数字或者字符拉,我的20是长度,但是我长度页试过了,变小或者变大都没有办法。看看我的代码:long ll_row
integer li_rtn
string ls_zyid
mod_inwork lstr_mod_inwork
lstr_mod_inwork.add_or_mod="add"
openwithparm(w_edit_inwork,lstr_mod_inwork,parent)
lstr_mod_inwork=Message.PowerObjectParm
If lstr_mod_inwork.cancel="Cancel" then return
ll_row=dw_1.insertrow(0)
dw_1.setrow(ll_row)
dw_1.scrolltorow(ll_row)
dw_1.selectrow(0,false)
dw_1.selectrow(ll_row,true)
dw_1.object.zy_id[ll_row]=lstr_mod_inwork.zy_id
ls_zyid=lstr_mod_inwork.zy_id
dw_1.object.zyxm[ll_row]=lstr_mod_inwork.zyxm
dw_1.object.bm_id[ll_row]=lstr_mod_inwork.bm_id
dw_1.object.xb[ll_row]=lstr_mod_inwork.xb
dw_1.object.jg_id[ll_row]=lstr_mod_inwork.jg_id
dw_1.object.zw_id[ll_row]=lstr_mod_inwork.zw_id
dw_1.object.zc_id[ll_row]=lstr_mod_inwork.zc_id
dw_1.object.xl_id[ll_row]=lstr_mod_inwork.xl_id
dw_1.object.csrq[ll_row]=lstr_mod_inwork.csrq
dw_1.object.jtdh[ll_row]=lstr_mod_inwork.jtdh
dw_1.object.gzdh[ll_row]=lstr_mod_inwork.gzdh
dw_1.object.sjhm[ll_row]=lstr_mod_inwork.sjhm
dw_1.object.chhm[ll_row]=lstr_mod_inwork.chhm
dw_1.object.sfzh[ll_row]=lstr_mod_inwork.sfzh
dw_1.object.yhzh[ll_row]=lstr_mod_inwork.yhzh
dw_1.object.yzbm[ll_row]=lstr_mod_inwork.yzbm
dw_1.object.gl[ll_row]=lstr_mod_inwork.gl
dw_1.object.drsj[ll_row]=lstr_mod_inwork.drsj
dw_1.object.txdz[ll_row]=lstr_mod_inwork.txdz
li_rtn=dw_1.update()//大哥们:我出错的地方,请给与指导!!
If li_rtn=1 then
commit using sqlca;
else
messagebox("保存数据","保存数据时发生错误!")
rollback using sqlca;
return
end if


我也用过insert也没有办法,用insert时候,在messagebox提示时候,提示成功的,但是就是没有办法update!!
SQLCA.AutoCommit = True
UPDATEBLOB people_in_work SET grjl = :gb_grjl WHERE zy_id = :ls_zyid USING sqlca ;
IF Sqlca.SQLNRows > 0 THEN
COMMIT USING SQLCA;
END IF
UPDATEBLOB people_in_work SET photo=:gb_photo WHERE zy_id = :ls_zyid USing sqlca;
IF Sqlca.SQLNRows > 0 THEN
COMMIT USING SQLCA;
END IF
SQLCA.AutoCommit = False
回复
braversmmu 2004-12-01
同意楼上的
回复
balloonman2002 2004-12-01
估计是你要插入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);

不要人为的单独加其他的单引号或冒号,系统会自动加的
回复
sure_java 2004-11-30
long ll_row
integer li_rtn
string ls_zyid
mod_inwork lstr_mod_inwork
lstr_mod_inwork.add_or_mod="add"
openwithparm(w_edit_inwork,lstr_mod_inwork,parent)
lstr_mod_inwork=Message.PowerObjectParm
If lstr_mod_inwork.cancel="Cancel" then return
ll_row=dw_1.insertrow(0)
dw_1.setrow(ll_row)
dw_1.scrolltorow(ll_row)
dw_1.selectrow(0,false)
dw_1.selectrow(ll_row,true)
dw_1.object.zy_id[ll_row]=lstr_mod_inwork.zy_id
ls_zyid=lstr_mod_inwork.zy_id
dw_1.object.zyxm[ll_row]=lstr_mod_inwork.zyxm
dw_1.object.bm_id[ll_row]=lstr_mod_inwork.bm_id
dw_1.object.xb[ll_row]=lstr_mod_inwork.xb
dw_1.object.jg_id[ll_row]=lstr_mod_inwork.jg_id
dw_1.object.zw_id[ll_row]=lstr_mod_inwork.zw_id
dw_1.object.zc_id[ll_row]=lstr_mod_inwork.zc_id
dw_1.object.xl_id[ll_row]=lstr_mod_inwork.xl_id
dw_1.object.csrq[ll_row]=lstr_mod_inwork.csrq
dw_1.object.jtdh[ll_row]=lstr_mod_inwork.jtdh
dw_1.object.gzdh[ll_row]=lstr_mod_inwork.gzdh
dw_1.object.sjhm[ll_row]=lstr_mod_inwork.sjhm
dw_1.object.chhm[ll_row]=lstr_mod_inwork.chhm
dw_1.object.sfzh[ll_row]=lstr_mod_inwork.sfzh
dw_1.object.yhzh[ll_row]=lstr_mod_inwork.yhzh
dw_1.object.yzbm[ll_row]=lstr_mod_inwork.yzbm
dw_1.object.gl[ll_row]=lstr_mod_inwork.gl
dw_1.object.drsj[ll_row]=lstr_mod_inwork.drsj
dw_1.object.txdz[ll_row]=lstr_mod_inwork.txdz
li_rtn=dw_1.update()//大哥们:我出错的地方,请给与指导!!
If li_rtn=1 then
commit using sqlca;
else
messagebox("保存数据","保存数据时发生错误!")
rollback using sqlca;
return
end if
SQLCA.AutoCommit = True
UPDATEBLOB people_in_work SET grjl = :gb_grjl WHERE zy_id = :ls_zyid USING sqlca ;
IF Sqlca.SQLNRows > 0 THEN
COMMIT USING SQLCA;
END IF
UPDATEBLOB people_in_work SET photo=:gb_photo WHERE zy_id = :ls_zyid USing sqlca;
IF Sqlca.SQLNRows > 0 THEN
COMMIT USING SQLCA;
END IF
SQLCA.AutoCommit = False


回复
sure_java 2004-11-30
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.[字段名][行号]=结构名.结构变量。我在“保存”时,数据窗口的行里面显示了数据的,但是就是提交不成功!(说明我定义的结构是将数据传入到我的数据窗口了的,只是没有办法提交,提示的错误就是上面的错误)


请问咋个办,谢谢各位大哥
回复
sure_java 2004-11-30
不是的
我昨天改了
还是不行!!求你们了!
回复
clj630 2004-11-29
同意楼上的说法,是字段定义的不正确,重新定义字段长度
回复
秦治民 2004-11-29
数据定义不正确,长度定义不正确。
回复
sure_java 2004-11-29
就是错误对话框中出现的。表示插入数据不成功!
回复
青锋-SS 2004-11-29
insert into t_jzgjbxx("t_id","name") values (???????????)
这是什么SQL语句?,没见过.
回复
sure_java 2004-11-29
有时候能够保存数据有时候就不能(一般只能保存一条数据)咋回事?
回复
braversmmu 2004-11-29
数据定义时定义小了
回复
相关推荐
发帖
数据库相关
创建于2007-09-28

734

社区成员

PowerBuilder 数据库相关
申请成为版主
帖子事件
创建了帖子
2004-11-29 10:26
社区公告
暂无公告