热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在delphi环境下,SQL语句超过255个字节,如何解决?

各位高手:您们好!在delphi环境下,用adoquary控件查询包括多个表的记录,select语句超过255个字节,程序报错,该如何解决,请高手指点!谢谢!
各位高手:
    您们好!
    在delphi环境下,用adoquary 控件查询包括多个表的记录,select语句超过255个字节,程序报错,该如何解决,请高手指点!谢谢!

24 个解决方案

#1


'select * from table '+#13
+' where ……'+#13
+' and ……';

#2


最好用存储过程来作。

#3


adoquary.sql.text:=adoquary.sql.text+'and (超长的语句)';

#4


把SQL语句分一下,分成两部分,
adoquary.sql.text:='少于255个SQL语句';
adoquary.sql.text:=adoquary.sql.text+'and (超长的语句)';

#5


//定义SQL语名变量

procedure TForm1.Button1Click(Sender: TObject);
var str1:string;
begin
  str1:='select * from 表名'
  str1:=str1+' where 字段名='条件值'';
  //还有的话继续写str1:=str1+...
  adoquery1.Close;
  adoquery1.SQL.Clear;
  adoquery1.SQL.Add(str1);
  adoquery1.Open;
end;

#6


可以直接这样写:

Str := 'Select * from table1 ' +
  ' where .....'   +
  ' and ......' +
  ' order by .....'
即直接在后面用+连接即可

#7


不建议使用 3-5楼的方案,

这样写的是可以,但调试时得到的sql语句太长,可读性极差,

应该写的时候就进行好断句,以后调试时才容易理解,否则过一段时间连自己都看不懂

#8


6楼和3-5楼一样,  我晕呀,你都一个星了,你这种句子有几十行加起来,在sql查询器里怎么调呀!

#9


用 #13 来断行,增强可读性和可调试性

#10


自由界面和报表的完美解决方案!
http://www.anylib.com

#11


我也觉得存储过程来做好点!

#12


to: zsjzwj(北极熊) 
你的方法,固然可以,但不能否认别人方法!
你不会是写程序总是想着在sql查询器调吧,
即使在里面调也没关系,你在sql查询器中截断分行也未尝不可!

#13


换行。

#14


to  hqhhh(枫叶) :

    有时一句sql 就有一两屏,多达几千字符,自己截的话,一句就要用一个小时呀!还要考虑嵌套、多重嵌套,那么这句话调好要多久? 
    sql语句如果发生错误,用sql查询器调是最方便快捷的,不是吗?

#15


Str := 'Select * from table1 ' +
  ' where .....'   +
  ' and ......' +
  ' order by .....'
这样写是可以的,如果"有时一句sql 就有一两屏,多达几千字符,自己截的话,一句就要用一个小时呀!还要考虑嵌套、多重嵌套"
那就在adoquery1.sql.add(str)之前加上一句:edit1.text:=str;或者直接输出到文本(比如日志),然后拷出来调试,找出错误再回去改源代码

说起来麻烦,调起来很简单,我们一直都是这么做的

#16


真不知道什么系统需要多达几千字符的sqL

#17


adoquary有这问题?
超过255个字节会报什么错?

#18


sql.clear;
sql.add('.....');
sql.add('.....');
sql.add('.....');
sql.add('.....');

写多少字都可以,sql是个Tstrings类。

#19


To: zsjzwj(北极熊)
-----------
    有时一句sql 就有一两屏,多达几千字符,自己截的话,一句就要用一个小时呀!还要考虑嵌套、多重嵌套,那么这句话调好要多久? 
    sql语句如果发生错误,用sql查询器调是最方便快捷的,不是吗?
-------------------

 sql语句如果发生错误,用sql查询器调是最方便快捷的,这个是不可否认的!
 但 如果一句sql 有一两屏,多达几千字符,如果再不考虑用视图或存储过程之类写,就不可思议了!

#20


我的工作环境是delphi+mssql2000, 程序的代码中几乎有一半是sql语句,有时处理复杂的数据逻辑时几十上百行一句的sql语句一但出现错误,调试就是非常复杂的一个工作了。特别不是自己写的,如果可读性不好,就更晕了。

#21


支持存贮过程

#22


分解,细化

#23


楼主你还想borland德源代码改了不成!如果可以改那应该就...
哈哈哈

#24


谢谢大家的讨论!存储过程我不熟悉,我还是想用断句的方式来写SQL 语句,用sql查询器调试,不失为一种比较好的方法,本人在实际编程经常用到。

推荐阅读
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了作者在开发过程中遇到的问题,即播放框架内容安全策略设置不起作用的错误。作者通过使用编译时依赖注入的方式解决了这个问题,并分享了解决方案。文章详细描述了问题的出现情况、错误输出内容以及解决方案的具体步骤。如果你也遇到了类似的问题,本文可能对你有一定的参考价值。 ... [详细]
  • Android JSON基础,音视频开发进阶指南目录
    Array里面的对象数据是有序的,json字符串最外层是方括号的,方括号:[]解析jsonArray代码try{json字符串最外层是 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • 深入理解CSS中的margin属性及其应用场景
    本文主要介绍了CSS中的margin属性及其应用场景,包括垂直外边距合并、padding的使用时机、行内替换元素与费替换元素的区别、margin的基线、盒子的物理大小、显示大小、逻辑大小等知识点。通过深入理解这些概念,读者可以更好地掌握margin的用法和原理。同时,文中提供了一些相关的文档和规范供读者参考。 ... [详细]
  • Oracle seg,V$TEMPSEG_USAGE与Oracle排序的关系及使用方法
    本文介绍了Oracle seg,V$TEMPSEG_USAGE与Oracle排序之间的关系,V$TEMPSEG_USAGE是V_$SORT_USAGE的同义词,通过查询dba_objects和dba_synonyms视图可以了解到它们的详细信息。同时,还探讨了V$TEMPSEG_USAGE的使用方法。 ... [详细]
author-avatar
崔显莉京_716
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有