标题:SQLEXEC 不能识别的短语和关键字
只看楼主
louzhenghong
Rank: 1
等 级:新手上路
帖 子:54
专家分:5
注 册:2016-4-25
结帖率:64.71%
已结贴  问题点数:20 回复次数:9 
SQLEXEC 不能识别的短语和关键字
RESTORE FROM D:\水表报修\szb.txt addi
  lcodbcdriver  =ALLTRIM(szb_类型)
  lcodbcserver  =ALLTRIM(szb_服务器)
  lcodbcdatabase=ALLTRIM(szb_数据库)
  lcuid     =ALLTRIM(szb_用户)
  lcpwd     =ALLTRIM(szb_密码)
con1=sqlstringconnect('driver='+lcodbcdriver+';server='+lcodbcserver+';database='+lcodbcdatabase+';uid='+lcuid+';pwd='+lcpwd) &&建立测试连接句柄
if con1>0
  messagebox("连接成功!",0,"数据源")

  SELECT card_1
  *a(8)=ALLTRIM(thisform.Grid2.Value)
  *thisform.text6.Value=thisform.Grid2.Value
  a(8)=ALLTRIM(维修类型)
  SELECT card01
  a(1)=卡号
  a(2)=ALLTRIM(thisform.text1.Value)
  a(3)=ALLTRIM(thisform.text2.Value)
  a(4)=card01.地址
  a(5)=DATETIME()
  a(6)=ALLTRIM(thisform.text4.Value)
  a(7)=card01.管道口径
  a(9)=card01.一级区
  a(10)=card01.二级区
  a(11)=card01.三级区
  a(12)=card01.四级区
  a(13)=card01.五级区
  a(14)=card01.六级区
  a(15)=ALLTRIM(thisform.text5.Value)
  a(16)='受理'
  a(17)=''
  a(18)=''
  a(19)=card01.姓名
  a(20)=card01.业主电话
  a(21)=card01.业主手机
  a(22)=''
  a(23)=''
  a(24)=''
  a(25)=''
 
     *卡号,保修人,报修人电话,报修地址,报修时间,报修内容,管道口径,报修类型,一级区,二级区,三级区,四级区,五级区,六级区,特殊情况,维修标记,施工队,维修信息,业主,业主电话,业主手机,受理人,派工人,派工时间,派工单单号
  *TEXT TO lcSql TEXTMERGE NOSHOW PRETEXT 4
        * insert into dbo.bx (卡号,保修人,报修人电话,报修地址,报修时间,报修内容,管道口径,报修类型,一级区,二级区,三级区,四级区,五级区,六级区,特殊情况,维修标记,施工队,维修信息,业主,业主电话,业主手机,受理人,派工人,派工时间,派工单单号)
        * values (?a(1),?a(2),?a(3),?a(4),?a(5),?a(6),?a(7),?a(8),?a(9),?a(10),?a(11),?a(12),?a(13),?a(14),?a(15),?a(16),?a(17),?a(18),?a(19),?a(20),?a(21),?a(22),?a(23),?a(24),?a(25))
  *ENDTEXT
  SQLEXEC(con1,"insert into dbo.bx (卡号,保修人,报修人电话,报修地址,报修时间,报修内容,管道口径,报修类型,一级区,二级区,三级区,四级区,五级区,六级区,特殊情况,维修标记,施工队,维修信息,业主,业主电话,业主手机,受理人,派工人,派工时间,派工单单号) values (?a(1),?a(2),?a(3),?a(4),?a(5),?a(6),?a(7),?a(8),?a(9),?a(10),?a(11),?a(12),?a(13),?a(14),?a(15),?a(16),?a(17),?a(18),?a(19),?a(20),?a(21),?a(22),?a(23),?a(24),?a(25))")
保存的时候出现不能识别的短语和关键字,就指向最后的那个SQLEXEC
搜索更多相关主题的帖子: database 关键字 服务器 server 数据库 
2016-05-04 11:26
louzhenghong
Rank: 1
等 级:新手上路
帖 子:54
专家分:5
注 册:2016-4-25
得分:0 
如果改成这样,结果是插入失败了
TEXT TO lcSql TEXTMERGE NOSHOW PRETEXT 4
         insert into dbo.bx (卡号,保修人,报修人电话,报修地址,报修时间,报修内容,管道口径,报修类型,一级区,二级区,三级区,四级区,五级区,六级区,特殊情况,维修标记,施工队,维修信息,业主,业主电话,业主手机,受理人,派工人,派工时间,派工单单号)
         values (?a(1),?a(2),?a(3),?a(4),?a(5),?a(6),?a(7),?a(8),?a(9),?a(10),?a(11),?a(12),?a(13),?a(14),?a(15),?a(16),?a(17),?a(18),?a(19),?a(20),?a(21),?a(22),?a(23),?a(24),?a(25))
  ENDTEXT
  *SQLEXEC(con1,"insert into dbo.bx (卡号,保修人,报修人电话,报修地址,报修时间,报修内容,管道口径,报修类型,一级区,二级区,三级区,四级区,五级区,六级区,特殊情况,维修标记,施工队,维修信息,业主,业主电话,业主手机,受理人,派工人,派工时间,派工单单号)
  *values (?a(1),?a(2),?a(3),?a(4),?a(5),?a(6),?a(7),?a(8),?a(9),?a(10),?a(11),?a(12),?a(13),?a(14),?a(15),?a(16),?a(17),?a(18),?a(19),?a(20),?a(21),?a(22),?a(23),?a(24),?a(25))")


    if sqlexec(con1,lcSql)>0
      messagebox("插入成功",0,"数据源")
    else
     messagebox("插入失败",0,"数据源")
    endif
2016-05-04 11:47
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:0 
你语句不要这么长,你可以分段处理,比如,你先插入5个,看看;行,再插入5个,这样你自己比较容易找到问题出在那里?
insert into dbo.bx (卡号,保修人,报修人电话,报修地址,报修时间) values (?a(1),?a(2),?a(3),?a(4),?a(5))
2016-05-04 13:59
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
得分:5 
分段检查一下
2016-05-04 17:54
louzhenghong
Rank: 1
等 级:新手上路
帖 子:54
专家分:5
注 册:2016-4-25
得分:0 
我在表单的init 上定义了public   a(100)
然后给a(5)赋值的时候
a(5)=ALLTRIM(thisform.text3.Value)  数据类型不一致
用thisform.text10.Value=TYPE(a(5))显示了一下,居然是U,这是怎么回事?
2016-05-06 09:02
liuxingang28
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山东济南
等 级:贵宾
威 望:47
帖 子:649
专家分:2156
注 册:2014-2-7
得分:0 
回复 5楼 louzhenghong
ALLTRIM()要求参数是字符型表达式,但是 THISFORM.Text3.Value 不是字符型。如果 TYPE('THISFORM.Text3.Value')返回 U,则说明表单上根本就没有 Text3 这个控件,或控件的名称、引用层次有错误。

泉城飞狐
2016-05-06 09:14
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:0 
以下是引用louzhenghong在2016-5-6 09:02:24的发言:

我在表单的init 上定义了public   a(100)
然后给a(5)赋值的时候
a(5)=ALLTRIM(thisform.text3.Value)  数据类型不一致
用thisform.text10.Value=TYPE(a(5))显示了一下,居然是U,这是怎么回事?

可以预先定义某个 text 的数据类型的,在 表单的INIT 或者 各自的 TEXT 的INIT中预先定义
比如
thisform.text1.value=""
thisform.text2.value=0.00
thisform.text3.value=date()

2016-05-06 09:37
louzhenghong
Rank: 1
等 级:新手上路
帖 子:54
专家分:5
注 册:2016-4-25
得分:0 
是a(5)的数据类型是U,不是thisform.text3.value,给a(5)赋值thisform.text3.value就不对了

[此贴子已经被作者于2016-5-6 11:39编辑过]

2016-05-06 11:05
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:15 
以下是引用louzhenghong在2016-5-6 11:05:30的发言:

是a(5)的数据类型是U,不是thisform.text3.value,给a(5)赋值thisform.text3.value就不对了

你前面:
a(5)=DATETIME()
而你又:a(5)=allt(thisform.text3.value)
你a(5) 到底想要什么类型的?
如果你要的是时间日期
那就这样
在Text3 的INIT中
this.value=datetime()
然后a(5)=thisform.text3.value
或者
在Text3 的INIT中
this.value=""
然后a(5)=CTOT(thisform.text3.value)

2016-05-06 13:38
louzhenghong
Rank: 1
等 级:新手上路
帖 子:54
专家分:5
注 册:2016-4-25
得分:0 
回复 9楼 mywisdom88
其实那个a(5)=datetime() 早就删除了,只是在text5的那个click里还有一个赋值为datetime()的,一直搞不清楚到底在哪里出错
2016-05-06 14:42



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-464377-1-1.html




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

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