gpt4 book ai didi

sql - 创建通用 SQL 查询构建器

转载 作者:行者123 更新时间:2023-12-03 18:29:20 24 4
gpt4 key购买 nike

在delphi中创建查询构建器的最佳方法是什么?

我有 devexpress 量子网格,所以我可以轻松地显示数据。

最佳答案

我假设您需要一个查询生成器来将 SQL 语句组合到数据库而不是 Quantum Grid 上的过滤器(它自己有一个出色的过滤系统。)

几年来,我们一直在使用 SQLGenerator 对象。我们从另一个项目继承了这个对象。虽然它做了它应该做的事情,但如果我要创建一个新语句,我总是需要查找一个示例,对我来说,这表明事情应该被简化(至少在我的理解水平上简化)。

有几个想法通过了评论。

因为每个 SQL 关键字本身就是一个对象

Node := where.AddNode;
Node.Condition := cndOR
Node.Add(a);
Node.Add(b)

打开数组添加条件
And([a, Or([b])]);

但今天我可能会将其实现为
SQLBuilder
.where
.condition(a)
.and
.condition(b)

SQLBuilder 对象可能如下所示
  ISQLBuilder = interface
function select: ISQLBuilder;
function from: ISQLBuilder;
function innerJoin: ISQLBuilder;
function where: ISQLBuilder;

应该可以写
  sqlStatement := SQLBuilder
.select
.column('o.name')
.column('oi.price')
.from
.table('orders o')
.innerjoin('orderitems oi').on('o.orderid').equals('oi.orderid')
.where
.condition('oi.price < 100')
.and.condition('o.name').equals('LatestOrder')
.Build;

除了用纯文本写声明之外,我还在试图弄清楚这一切给我带来了什么。

关于sql - 创建通用 SQL 查询构建器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4031964/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com