它们代表嵌入式SQL吗?
嵌入式SQL与在编程语言中使用SQL有什么区别?
答案 0 :(得分:4)
不,TADO*
不是嵌入式SQL。
嵌入式SQL是一种(大多是过时的)技术,您可以在代码中编写特殊分隔的SQL,并使用预处理应用程序将其转换为直接的DB API调用。
如果您愿意,可以在Chapter 14 of the InterBase Embedded SQL guide [PDF]中阅读相关内容。
答案 1 :(得分:4)
没有那些Delphi组件不是嵌入式SQL。在嵌入式SQL中,SQL语句与常规代码混合在一起,我所知道的最常见的形式是ESQL / C.它应被视为已弃用。
它的工作方式是一个预处理器,它将所有与SQL相关的东西翻译成宿主语言,并且预翻译的代码通过宿主语言编译器提供。
基于PostgreSQL的ESQL / C实现的简短片段:
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;
}
根据我的经验,在这样的代码中工作非常困难,这就是为什么这种曾经非常常见的技术被放弃了。
答案 2 :(得分:2)
嵌入式SQL在程序代码中使用SQL语句