| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6201 人关注过本帖
标题:如何将超过254字符内容更新至sql中
只看楼主 加入收藏
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3146
专家分:8408
注 册:2015-3-25
收藏
得分:0 
以下是引用ttlover7613在2016-8-30 15:23:06的发言:

text  这里是变量怎么定义  endtext

TEXT TO sqlStr TEXTMERGE NOSHOW PRETEXT 4
...
endtext
这里,变量名称就是 sqlStr,
2016-08-30 15:24
ttlover7613
Rank: 2
等 级:论坛游民
威 望:2
帖 子:48
专家分:85
注 册:2016-8-29
收藏
得分:0 
开始的语句SQLEXEC(h2,"update health_data set Inspect_content=‘&pjg’  where Inspect_ID=‘&pcfh’ and name=?pxm and Inspect_category='1'")
错误是我用了宏替换&pjg,用了?就不会报错了
现在的语句SQLEXEC(h2,"update health_data set Inspect_content=?pjg  where Inspect_ID=?pcfh and name=?pxm and Inspect_category='1'")
非常感谢!
2016-08-30 15:32
红星二锅头
Rank: 8Rank: 8
等 级:贵宾
威 望:46
帖 子:491
专家分:754
注 册:2016-8-25
收藏
得分:0 
就是用变量名,纯变量名:lcStr,和加前缀的变量名:m.lcStr,其运算速度也是有差异的,m.lcStr 的要比 lcStr 的运算速度快 5-8%,以前在一个老外的一个论坛中讨论的非常激烈。

有兴趣的朋友我们可以另开一个帖子讨论。

团队红星二锅头,队长王猛,领队李冲,顾问杨伟,副队张挺,外联马彪,内勤韩秀,人事顾闯,财务赵魁,后勤周强
2016-08-30 15:37
红星二锅头
Rank: 8Rank: 8
等 级:贵宾
威 望:46
帖 子:491
专家分:754
注 册:2016-8-25
收藏
得分:0 
不是早就说了吗?语法有问题,不是 255 问题。
11 楼和 14 楼的示例也给了你。

不听我的,那也就没招。

@ttlover7613

团队红星二锅头,队长王猛,领队李冲,顾问杨伟,副队张挺,外联马彪,内勤韩秀,人事顾闯,财务赵魁,后勤周强
2016-08-30 15:42
ttlover7613
Rank: 2
等 级:论坛游民
威 望:2
帖 子:48
专家分:85
注 册:2016-8-29
收藏
得分:0 
回复 24楼 红星二锅头
关键是用宏替换也可以正常运行呀,但有长度限制。
2016-08-30 17:24
ttlover7613
Rank: 2
等 级:论坛游民
威 望:2
帖 子:48
专家分:85
注 册:2016-8-29
收藏
得分:0 
回复 24楼 红星二锅头
prq=DTOC(DATE())
pzf="insert into Health_Data([Inspect_ID] ,[UserID] ,[InTheDate],[Inspect_category] ,[Inspect_name] ,[Inspect_part],[Inspect_content],[Chronic_mark] ,[Docter] ,cardid,name)"
pzf2="values('&pcfh','','&psfrq','&pcflb',"
pzf3="'&pmc','',"
pzf4="'&pznr',"
pzf5="0,'&pys','&ppkh','&pxm1')"
zzf="&pzf"+" "+"&pzf2"+"&pzf3"+"&pzf4"+"&pzf5"
SQLEXEC(h2,zzf)
SQLEXEC(h1,"update ad_prescription_memo set scrq='&prq' where prm_number='&pcfh'")
SKIP
enddo
ENDIF
PLis="select A.ReceiveDate,A.SectionNo,A.SampleNo,A.PatNo,,A.Age,A.Operator, from ReportForm A,Department B "
PLis1="where A.DeptNo=B.Deptno and (ReceiveDate='&date2')and(SectionNo=3) and "
Plis2=" (SectionNo=1 or SectionNo=2 or SectionNo=3 or SectionNo=4 or SectionNo=5 or "
PLis3=" SectionNo=6 or SectionNo=7 or SectionNo=8 or SectionNo=9 or SectionNo=10) "
ZPLis="&PLis"+" "+"&PLis1"+" "+"&PLis2"+" "+"&PLis3"
abb1=Sqlexe(h3,ZPLis)
Copy TO Plis
SELECT 0
USE PLis ALIAS Plis
Pbgao="select RI.*,TI.ShortName as ItemName, as ItemCName,TI.EName as ItemEName,TI.Unit as ItemUnit,RI.ReportDesc as ItemValue,TI.cuegrade,TI.DispOrder,TI.secretgrade from ReportItem RI,TestItem TI "
Pbgao1="where (RI.ItemNo=TI.ItemNo)and(ReceiveDate='&date2')and(SectionNo=3)and"
Pbgao2="((TI.secretgrade & convert(binary(2),16)<>16) or (TI.secretgrade IS NULL) or (TI.secretgrade=-1))  order by TI.DispOrder"
ZPbgao="&pbgao"+" "+"&pbgao1"+" "+"&pbgao2"
abb2=SQLEXEC(h3,ZPbgao)  
COPY TO Pbgao
SELECT 0
USE Pbgao ALIAS Pbgao
我用了这么多宏替换的语句都没问题,就是出现超长字符串的时候才报错的,所以没引起注意,非常感谢!
2016-08-30 17:27
红星二锅头
Rank: 8Rank: 8
等 级:贵宾
威 望:46
帖 子:491
专家分:754
注 册:2016-8-25
收藏
得分:0 
是的,用宏替换也可以正常运行的,比如:
lcStr = "ABCDE_12345"
? lcStr
? "&lcStr"
这两句的效果不是一样的吗?为什么要绕个弯?

还有,如果 Pjg 是 Memo 字段,没有必要再用变量过度,直接用 Pjg 字段,即:
* Pyuj="update health_data set Inspect_content='&Pjg'"
Pyuj="update health_data set Inspect_content=?Pjg"
SQLEXEC(h1,Pyuj)

@ttlover7613

团队红星二锅头,队长王猛,领队李冲,顾问杨伟,副队张挺,外联马彪,内勤韩秀,人事顾闯,财务赵魁,后勤周强
2016-08-30 23:35
红星二锅头
Rank: 8Rank: 8
等 级:贵宾
威 望:46
帖 子:491
专家分:754
注 册:2016-8-25
收藏
得分:0 
宏替换和普通的变量也有长度的限制,但宏替换可以是8K,如果一定要使用宏替换的,和多变量的拼接一样处理,即:
? "&lcStr1" + "&lcStr2" + "&lcStr3"
等同于:
? lcStr1 + lcStr2 + lcStr3

[此贴子已经被作者于2016-8-30 23:52编辑过]


团队红星二锅头,队长王猛,领队李冲,顾问杨伟,副队张挺,外联马彪,内勤韩秀,人事顾闯,财务赵魁,后勤周强
2016-08-30 23:45
hyswcyh01
Rank: 2
等 级:论坛游民
帖 子:64
专家分:47
注 册:2016-7-17
收藏
得分:4 
学习下...
2016-08-31 10:56
jlslzhb
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2009-1-4
收藏
得分:0 
回复 10楼 sdta
谢谢大家,也我有同样的问题,按这上说的成功了

代码如下:
        TEXT  TO  sqlStr1  TEXTMERGE  NOSHOW  PRETEXT  4
insert into operator(user_dw
,user_name
,user_code
,user_type
,user_Qx
,personal1
,personal2
,personal3
,personal4
,personal5
,personal6
,personal7
,workers1
,workers2
,workers3
,workers4
,workers5
,workers6
,workers7
,set_dw1
,set_dw2
,set_dw3
)
values(?ls_dw
,?ls_name
,?ls_code
,?ls_type
,?ls_user_qx
,?ls_personal1
,?ls_personal2
,?ls_personal3
,?ls_personal4
,?ls_personal5
,?ls_personal6
,?ls_personal7
,?ls_workers1
,?ls_workers2
,?ls_workers3
,?ls_workers4
,?ls_workers5
,?ls_workers6
,?ls_workers7
,?ls_set_dw1
,?ls_set_dw2
,?ls_set_dw3
)
        ENDTEXT   
        ret2 = SQLEXEC(nHandle, SQLSTR1)

谢谢高手!!!
2018-09-15 10:06
快速回复:如何将超过254字符内容更新至sql中
数据加载中...
 
   



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

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