我在做PB 与SQL SERVER 连接时 插入代码 写好 但是 出现这样的错误

SQLSTATE=37000
[Microslft][SDBC SQL Server Driver][SQL SERVER]成绩的取值 必须在0到100之间 。问题我的SQL SERVER这个表里面没有 这个列啊!
string xh,xm,xb,zy,bz
int n
xh= sle_8.Text
xm =sle_9.text
xb =sle_11.text
zy=sle_10.text
bz=sle_12.text
n=dw_3.rowcount()
INSERT INTO 借阅者信息(学号, 姓名, 性别,专业,备注)
VALUES (:xh, :xm,:xb,:zy,:bz) ;
dw_3.scrolltorow(n+1)
if SQLCA.SQLCode = 0 then
COMMIT ;

MessageBox("提示信息", "图书信息插入成功!")
else
ROLLBACK ;
MessageBox("数据库错误", SQLCA.SQLErrText, Exclamation!)
End If

你的成绩这列肯定有一个约束,限制值必须在0到100之间。
而你这个插入语句,并没有插入这个字段的值,那么就表示本次插入的这个字段的值是空(NULL),而你的成绩字段又没有设置默认值,所以插入的空值不符合你的约束条件,无法执行插入。
插入的时候,你把这个字段加进去,然后给一个值0.
INSERT 语句修改一下
INSERT INTO 借阅者信息(学号, 姓名, 性别,专业,备注, 成绩)
VALUES (:xh, :xm,:xb,:zy,:bz, 0) ;
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-05-13
首先,借阅者信息 这个表,你的insert 字段是不是全部字段?如果不是全部字段,请检查一下没有包含在insert 语句里的字段,是不是设置了约束。
再就是,借阅者信息 这个表有没有触发器,比如插入一条记录后,会往其他表里插入一条记录,那个表有个字段是成绩,
按这个思路,你可以试着找一下,或者,你的数据窗口里有没有什么特殊设置,也可以找一找,
希望能够帮助到你。
范德萨个人
第2个回答  2011-07-13
能贴出你的代码吗?这样的提问没法回答!!追问

哥们 已经 写在补充里面了

追答

问题1.如果用dw_3来显示那么,insert后应该重新检索数据窗口dw_3。
n=dw_3.rowcount()//可以去掉
INSERT INTO 借阅者信息(学号, 姓名, 性别,专业,备注)
VALUES (:xh, :xm,:xb,:zy,:bz) ;
n= dw_3.retrieve()
dw_3.scrolltorow(n)
问题2.从提示来看。
INSERT INTO 借阅者信息(学号, 姓名, 性别,专业,备注)
VALUES (:xh, :xm,:xb,:zy,:bz,) ;缺少成绩,而插入记录的时候成绩的默认值为null或者0,和定义的取值冲突。所以保存失败。先确定这个成绩提示是怎么回事!

第3个回答  2011-07-14
SQL正准备学,现在学的用的都是ACCESS。
第4个回答  2011-07-14
没这列就加进去这个列呗

我在做PB 与SQL SERVER 连接时 插入代码 写好 但是 出现这样的错误
而你这个插入语句,并没有插入这个字段的值,那么就表示本次插入的这个字段的值是空(NULL),而你的成绩字段又没有设置默认值,所以插入的空值不符合你的约束条件,无法执行插入。插入的时候,你把这个字段加进去,然后给一个值0.INSERT 语句修改一下 INSERT INTO 借阅者信息(学号, 姓名, 性别,专业,...

求助!急!pb中配置mss microsoft sql server数据源的问题。
产生这种现象的原因是我们没有正确地安装或设置好PB的native driver或数据库的客户端软件(如Sybase的Open Client)。具体的有以下三个原因:1. PowerBuilder安装的是32位的,而数据库的客户端软件安装的却是16位的;或PowerBuilder安装的是16位的,而数据库的客户端软件安装的却是32位的。2. ...

登录PB数据库应用程序,弹出连接失败的问题?
在PB设计器里设置好ODBC连接是没用的,运行时的连接取决于你的代码。

运行打包好的PB程序,出现这种提示错误信息,该怎么解决?是少了哪个文...
不是少了文件,而是程序有问题,在PB中,如果用到了数据窗口,那么在数据窗口retrieve数据之前,一定要为此数据窗口调用settransobject函数,语法类似这样:dw_1.settransobject(sqlca)如果没有调用这个函数,直接进行retrieve的话,就会出现你所说的这种错误提示。--- 你的连接代码中怎么没有登录密码的设置...

用PB做程序出现的错误
[sybase][odbc driver] 应该是数据库联接有问题,或者是数据库客户端没有正确安装,程序编译后不能联接数据库。 解决方法:1,重装一下数据库客户端;2,将PB文件夹中有一些DLL文件COPY到应用程序所在文件夹即可。希望采纳

powerbuilder为什么连不上sql数据库
SQLCA.DBMS = "ODBC"SQLCA.AutoCommit = False SQLCA.DBParm = "ConnectString='DSN=book;UID=sa;PWD='"connect;(一定要写的)2, 通用接口ODBC 在建立ODBC数据源之前,如果你的PB是在CLIENT的话你的安装SQL SERVER 的CLIENT TOOL.驱动程序选SQL SERVER,然后按提示做就可以了.数据源...

pb 怎么连上sql server
数据库连接步骤 1、在powerbuilder软件界面,点击上面数据库图标。2、弹出Database Profiles窗口,在此窗口内,双击图中标注ODBC Administrator项。3、在弹出的ODBC数据源管理器中点击右侧的添加按钮。4、在弹出的创建新数据源窗口中,点击最下方SQL Server Native Client 10.0项。5、弹出创建到SQL Server...

PB与SQL数据库的连接问题
第一是写死在程序中,直接设置SQLCA的相关参数,不过这样的配置,可移植性就差了。如果更换服务器的地址或迁移数据库,所有客户端的程序都要重新下载,而且要重新修改源代码。第二种事写在注册表中,在注册表中增加一项,这里面存储着SQLCA的连接参数,服务器地址,数据库用户名密码。第三种是使用配置...

PB错误“SQLSTATE=37000”
Unable to list the users.[Microsoft][ODBC SQL Server Driver][SQL Server]无法预定义语句 SQLSTATE = 37000 解决方案:步骤一:选择菜单栏中的Database -> Change Current DBMS ,给DBMS选择SQL Server2005。步骤二:重新配置ODBC连接,取消"更改默认的数据库为"选择。步骤三:从PD里选择File -> ...

powerbuilder和sql sever的连接问题
1.启动SQL Server服务器;2.PB环境下,打开ASA数据库,即点击DB Profile按钮;3.点击ODB ODBC 4.展开Utilities节点 5.点击ODBC Administrator创建ODBC数据源;6.选择ASA8.0 Sample(以PB9.0为例) 添加 7.选择SQL Server驱动 8.选择你所要连接的Sql Sewrver数据库 ...一步一步往下走!完全图形界面!...

相似回答