首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是嵌入式SQL?

什么是嵌入式SQL?
EN

Stack Overflow用户
提问于 2011-07-23 00:08:48
回答 3查看 646关注 0票数 1

例如,Delphi有组件TADOQuery、TADOStoredProcedure、TADOtable。

它们代表嵌入式SQL吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-07-23 00:14:01

不,TADO*不是嵌入式SQL。

嵌入式SQL是一种(主要是过时的)技术,您可以在代码中编写特殊分隔的SQL,并使用预处理应用程序将其转换为直接的DB调用。

如果你愿意,你可以在Chapter 14 of the InterBase Embedded SQL guide文档中阅读它。

票数 4
EN

Stack Overflow用户

发布于 2011-07-23 00:16:28

不,这些Delphi组件不是嵌入式SQL。在嵌入式SQL中,SQL语句与常规代码混合在一起,据我所知,最常见的形式是ESQL/C。

它的工作方式是一个预处理器,它将所有与SQL相关的内容翻译成宿主语言,并通过宿主语言编译器提供预翻译的代码。

基于PostgreSQL的ESQL/C实现的一小段代码:

代码语言:javascript
复制
void showesql() {
    EXEC SQL BEGIN DECLARE SECTION;
    int FooBar;
    VARCHAR DooDad;
    EXEC SQL END DECLARE SECTION;

    EXEC SQL DECLARE foo_bar CURSOR FOR
        SELECT number, ascii FROM foo
        ORDER BY ascii;
    EXEC SQL OPEN foo_bar;
    EXEC SQL FETCH foo_bar INTO :FooBar, DooDad;
    printf ("number is %d and ascii was %s\n",FooBar, DooDad);
    EXEC SQL CLOSE foo_bar;
    EXEC SQL COMMIT;
}

根据我的经验,在这样的代码中工作是相当困难的,这就是为什么这项曾经很常见的技术已经被放弃了。

票数 4
EN

Stack Overflow用户

发布于 2011-07-23 00:14:04

嵌入式SQL在程序代码中使用SQL语句

http://en.wikipedia.org/wiki/Embedded_SQL

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6792823

复制
相关文章

相似问题

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