| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3650 人关注过本帖
标题:VFP+SQL 插入数据问题
只看楼主 加入收藏
guitarist
Rank: 1
等 级:新手上路
帖 子:45
专家分:6
注 册:2012-2-29
结帖率:88.89%
收藏
已结贴  问题点数:10 回复次数:7 
VFP+SQL 插入数据问题
经过最近学习研究,我改用了通过VFP表单上的按钮CLICK事件 ,将表单上文本框中的数据直接用INSERT INTO 插入到SQL原表中。但今天有一个表单却怎么也不起作用了。我反复查看了其他表单,按钮CLICK事件代码,包括SQL数据库设置,都没有问题。但就是不行。代码简单列出如下:
在VFP主程序中建立连接。
一、maiTAIZ.prg                (*.*.*.*是服务器地址)

PUBLIC nhandle
........
nhandle=SQLSTRINGCONNECT('driver=sql server;server=*.*.*.*;UID=sa;pwd=sa;database=tz')
........
do form taiz.scx
........

二、CHUF表单“保存”按钮CLICK代码如下
sbh=alltrim(thisform.text1.value)
mc=alltrim(thisform.text1.value)
wfs=alltrim(thisform.edit1.value)
........
sqlexec(nhanlde,'insert into chufa(nsrbh,nsmc,wfss....) values(?sbh,?mc,?wfs,.....)','with(tablockx,holdlock)')
.......
.......
thisform.text1.enabled=.f.
..............
thisform.edit1.enabled=.f.

SQL数据库中建立了三个表,分别是DJ,ZX,CHUFA。在VFP中有三个表单,分别对应SQL中的三个表。其他两个表单都没有问题。就是到了这第三个表单,“保存”按钮的CLICK事件不起作用了。我是将那两个表单的“保存”按钮中的代码复制过来的。经过与第三个表进行相应的改动,没有错误的地方啊。可就是不插入数据了。

另外,今天还发现一个奇怪的事情,我在SQL数据库中建立新表的时候,建立字段,在后面设置属性的时候却乱了。例如,我设置第一个字段名为SSH ,属性为CHAR ,长度是20.第二个字段名为RQ 属性为MO....(数值型)。但在运行的时候发现第一个字段的记录是数据带有小数位。第二个字段反而成为字符型。再进入“表设计”里,分明是第二个字段被 设为数值型的,这是为什么呢。

以上问题请高手指教。多谢!
搜索更多相关主题的帖子: database PUBLIC 服务器 server 文本框 
2016-01-04 21:15
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:1 
sqlexec(nhanlde,'insert into chufa(nsrbh,nsmc,wfss....) values(?sbh,?mc,?wfs,.....)','with(tablockx,holdlock)')
你要查看,你这个,执行是不是成功的,才能找到答案
?sqlexec(nhanlde,'insert into chufa(nsrbh,nsmc,wfss....) values(?sbh,?mc,?wfs,.....)','with(tablockx,holdlock)')
另外,sqlexec(nhanlde,'insert into chufa(nsrbh,nsmc,wfss....) values(?sbh,?mc,?wfs,.....)')不需要返回表的,一般查询才需要
2016-01-05 10:45
guitarist
Rank: 1
等 级:新手上路
帖 子:45
专家分:6
注 册:2012-2-29
收藏
得分:0 
回复 2楼 mywisdom88
找到问题所在,原因很简单,错误很低级,是字段里的一个字母没能写对。但我在VFP执行语句时没有错误提示。这个目前还不知道该如何做到。可以指教么?
2016-01-05 22:17
wcx_cc
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:52
帖 子:380
专家分:1169
注 册:2015-10-2
收藏
得分:2 
字段名写错了,执行不成功时,就是没提示的。全靠个人校对语句。特别是‘插入’操作,出错率高,需要逐个字母校对。

2016-01-05 23:27
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:5 
以下是引用wcx_cc在2016-1-5 23:27:33的发言:

字段名写错了,执行不成功时,就是没提示的。全靠个人校对语句。特别是‘插入’操作,出错率高,需要逐个字母校对。

那就很简单了,你可以简单判断是否执行成功
sqlStr='insert into 表(字段1,字段2,字段3,字段4) values(?变量1,?变量2,?变量3,?变量4)'
if sqlexec(句柄,SqlStr)>0
   messagebox("插入数据成功")
else
   messagebox("插入数据失败")
endif
2016-01-06 09:17
kiff
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:贵宾
威 望:46
帖 子:756
专家分:2531
注 册:2013-1-30
收藏
得分:2 
把SQL语句放到查询分析器运行一下就知道问题所在了
2016-01-06 16:33
guitarist
Rank: 1
等 级:新手上路
帖 子:45
专家分:6
注 册:2012-2-29
收藏
得分:0 
受益匪浅,学习了!!!!感谢大家的指教。
2016-01-06 20:39
wangdi_2022
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2022-11-26
收藏
得分:0 
回复 5楼 mywisdom88
请问 变量 前边的?是什么意思,代表什么?
2022-11-29 20:52
快速回复:VFP+SQL 插入数据问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029425 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved