SQL语句太长,无查询结果,却又不报错

SQL语句太长,无查询结果,却又不报错,第1张

先肯定的回答你,这段SQL语句就算在放大500倍,SQL也能查询出来(速度要看你服务器能力了),所以不是语句长度问题。开销是在查询上。

再分析你的条件,你的大概意思是想查出ID不为空并且为那些工号的行。你应该把所有OR的条件括号起来,否则系统认为ID不为空并且不为521

最后建议你语句改成:

select from School where id in(Instr('|'&USA_Major&'|','|521|','|'&USA_Major&'|','|557|'),……)

一般碰到这么长的语句,容易出错,通用都用一个"变通"的写法,

mysql="SELECT [字段0] From [数据表1] WHERE "

mysql = mysqlr & "[字段1]='" & DataGrid1Columns(0)Text & "' and [字段2]='" & DataGrid1Columns(1)Text & "' and [字段3]='" & DataGrid1Columns(2)Text & "' and "

mysql=mysql & "[字段4]='" & DataGrid1Columns(3)Text & "' and [字段5]='" & DataGrid1Columns(4)Text & "' and [字段6]='" & DataGrid1Columns(5)Text & "' and"

以此类推,直至到最后

只是想缩短便于显示吗?这样

connExecute "insert into ss (DT,NUM,RESULT1,RESULT2,STEP11,STEP12,STEP13,STEP14,STEP21,STEP22,STEP23,STEP24," & _

"STEP31,STEP32,STEP33,STEP34,STEP41,STEP42,STEP43,STEP44,STEP51,STEP52,STEP53,STEP54,STEP61,STEP62,STEP63,STEP64) values ('" & _

Text19Text & "','" & Label7Caption & "','" & Label15Caption & "','" & Label26Caption & "','" & Text1Text & "','" & Text2Text & _

"','" & Text9Text & "','" & Text10Text & "','" & Text13Text & "','" & Text14Text & "','" & Text11Text & "','" & Text12Text & "','" & _

Text3Text & "','" & Text4Text & "','" & Text17Text & "','" & Text18Text & "','" & Text5Text & "','" & Text6Text & "','" & Text20Text & _

"','" & Text21Text & "','" & Text7Text & "','" & Text8Text & "','" & Text22Text & "','" & Text23Text & "','" & Text15Text & "','" & _

Text16Text & "','" & Text24Text & "','" & Text25Text & "')"

你这么写 sql很不科学的,建议这么写,

使用连接查询,表的别名

如:

select from table1 t1

inner join table2 t2 on t1ziduan1 = t2ziduan1

inner join table3 t3 on t2ziduan1 = t3ziduan1

where 其他条件

entity 使用对象模式来 *** 作其实列太长的 需要跟新都没什么好办法 最多你写个循环 把跟新参数用键值对的形式拼出来,不过使用拼字符串形式的数据库 *** 作,一定要做好过滤,不然注入攻击一抓一个准

存储过程处理吧。

存储过程的优点:

因为存储过程是T-sql语句的批处理,再加上存储过程是预编译的,再次执行此存储过程的时候就不需要编译了,速度方面也大大的提升了

直接用一条查询语句的话那每次执行的话,都需要编译一次,并且加大了网络流量,还有一点,就是查询条件变了还需改动VB源代码,还不如存储过程直接修改SQL语句就OK了。

还有一个就是解决了编程软件的字符长度的限制。

实现代码:

create proc procname

as

begin

select (你需要的查询语句)

end

VB源的执行: exec procname

最长的sql语句有多长

不同的数据库甚至相同数据库的不同版本都可能不一样,具体可以查询联机帮助,或参阅产品规格说明。总的来说SQL语句的最大长度限制都是很大的,编写SQL语句一般不需要考虑语句的长度问题。例如ACCESS的SQL最大长度约为6,4000个、MSSQL为65,536 网络数据包。像这样的长度,足够你写下长篇大论了。但是话要说回来,一个太长的语句其执行效率变得会低下,尽量避免编写太长和过于复杂的SQL语句还是非常必要的。

以上就是关于SQL语句太长,无查询结果,却又不报错全部的内容,包括:SQL语句太长,无查询结果,却又不报错、sql语句过长怎么办、求救:我用VB向数据库中插入字符,但语句太长,用了空格和下划线方法分行还是不行,请指导!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10146536.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存