首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Delphi中存储许多长SQL查询的最佳实践

在Delphi中存储许多长SQL查询的最佳实践
EN

Stack Overflow用户
提问于 2022-04-30 11:13:41
回答 3查看 387关注 0票数 1

我正在用Delphi XE开发应用程序。我有许多长SQL查询,我不想像下面这样将它们存储在代码中,因为这种方法降低了代码的可读性:

代码语言:javascript
运行
复制
CONST_SQL1 = 'SELECT ... FROM ..'#13#10 + 'WHERE ...';

也许创建DataModule并将SQL查询存储在备注组件中是另一种选择。这样,SQL查询将比上面的方法更具可读性,但这样,我必须在DataModule中添加许多备注组件,如Memo_SQL1、Memo_SQL2、Memo_SQL3、.

另外,我不想将这些SQL查询存储在单独的文件或数据库中。

是否有一个组件可以存储所有这些SQL查询,或者您在本例中的最佳实践是什么?

EN

Stack Overflow用户

发布于 2022-05-05 13:55:39

我会为每个查询寻找一个(文本)资源文件。这使得跟踪源代码管理系统中的更改变得更加容易。

在项目目录中为SQL文件添加一个子文件夹,并将它们添加到rc文件中,如下所示:

代码语言:javascript
运行
复制
SQL1               TEXT  .\SQL\SQL1.sql
SQL2               TEXT  .\SQL\SQL1.sql

将rc-文件添加到项目中,您就可以将SQL文本直接加载到TQuery的SQL成员中,就像

代码语言:javascript
运行
复制
program Project2;

{$APPTYPE CONSOLE}

{$R *.res}
{$R 'SQLQueries.res' 'SQLQueries.rc'}

uses
  Windows,
  Data.SqlExpr,
  Classes;

var
  ResourceStream: TResourceStream;
  Query: TSQLQuery;
begin
  ResourceStream := TResourceStream.Create(HInstance, 'SQL1', 'TEXT');
  Query:= TSQLQuery.Create(nil);
  try
    Query.SQL.LoadFromStream(ResourceStream);
    Writeln(Query.SQL.Text);
    ReadLn;
  finally
    Query.Free;
    ResourceStream.free;
  end;
end.
票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72068007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档