先肯定的回答你,这段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向数据库中插入字符,但语句太长,用了空格和下划线方法分行还是不行,请指导!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)