问题标签 [embedded-sql]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
null - 获取行时出现问题的空白 (Informix)
NULL Vs Blank 一直很有趣的问题现在让我有点抓狂。
我有两个代表两个表的 ESQL/C 结构。我正在从游标中的一个表中获取一行。使用此提取中两个字段的值,我将从另一个表中检索一行。我事先知道第二次提取肯定会返回一行。
现在,第二个表可以有空白值。空白,我的意思是像''这样的值。当我进行卸载时,这些字符显示为“\”。但在 C 程序中,我相信这些并没有被获取。
或者,我无法查看这些值是否存在。假设我获取 char *value 中的值,
if (value[0] == '\0') 或 if (value[0] == ' ')
不起作用。gdb 显示类似 value = "\000", ' ' 的内容。但我无法从 C 代码中验证这一点。
我通过管道分隔文件手动加载表格。为了插入空白,我输入了 |\ |。
任何人都可以让我知道我错在哪里。
c++ - 如何摆脱使用但未定义的标签
我正在尝试在嵌入式 sql 中打印表的行。我有这个代码,其中发布是表,pubid 是属性。我试过这个:
编译器给了我这个错误:错误:标签'close_c1'已使用但未定义。我该如何解决?
informix - Informix Dynamic Server 上的 TEXT 更新与 TEXT 插入
我维护了一个使用 ESQL 风格(Informix API)调用编写的第 3 方 Informix 驱动程序。我正在处理一个错误,在该错误中,对于 TEXT 字段,INSERT 工作正常而 UPDATE 失败。单步执行代码,我发现我们正在检查我们的 sqlda 结构以告诉我们是否以及如何绑定,并且在调用 sqli_describe_statement 之后,sqlda.sqld 变量包含 2,即绑定参数的正确数量这个插入调用,并且参数似乎设置正确,而在更新情况下,返回的数字是 0,没有参数信息(它应该是 1,对于一个参数:“UPDATE TESTTAB SET COLNAME = ? WHERE OTHERCOLNAME = 1")。
使用 sqlda 信息,我们为 INSERT 正确设置了所需的定位器结构,但我们无法进行更新,因为信息不存在。如果我在调试器中伪造它并运行设置定位器代码进行更新,它会更新得很好。
该语句当然看起来是正确的,并且在 INSERT 中使用了与 UPDATE 绑定相同的变量。此外 sqli_prep 更新没有问题。对于 describe,sqsla.code 返回不同的非负数 4 和 6,表示被描述的不同类型的语句,作为文档化(即,不是错误代码),因此没有明显的问题。
还有什么我应该在此之前检查代码的东西,这可能会导致这种奇怪的行为(除了对不同查询的特殊情况处理——那里什么都没有)
我是否在这里遗漏了一些关于如何在 TEXT 字段上进行更新的基本知识,例如您必须创建一个定位器对象,找到该行,然后一起单击三下并说“没有像 IBM 这样的地方?”
到目前为止,Google Fu 在文档中几乎没有出现,但是如果您知道指明方向的文档或示例,那也很酷。
syntax-highlighting - Eclipse CDT 和 ESQL 语法错误
我正在使用 Eclipse CDT(Helios 版本)来编辑(旧)C 应用程序的源代码,该应用程序也使用 ESQL。在这个项目中,按照惯例,包含 ESQL 代码的文件具有 .sc 扩展名(而不是默认的 .c)
所有 ESQL 部分,例如以 EXEC SQL 关键字开头的部分都被标记为“语法错误”(垂直标尺、概览标尺和琥珀色波浪线)。实际编译是在具有 ESQL 编译器的不同机器 (Unix) 上执行的。如何检查开发机器上的 SQL 代码的语法?
注意:我可以从 Preferences / General / Editors / Text Editors / Annotations / C/C++ Indexer Markers 隐藏通知,但这可能会隐藏可能有用的警告。
oracle - 在 ESQL 中发生死锁时,sqlcode 不返回 DEADABORT
我试图了解如何使用 ESQL 管理死锁。我创建了 2 个并发进程来尝试更新“客户”表,就像 O'Neil 的书“数据库”中给出的示例:http: //books.google.ca/books ?id=UXh4qTpmO8QC&pg=PA298&lpg=PA298&dq=% 22deadabort%22+oracle&source=bl&ots=2QF7eSbaW6&sig=IcEZtSXINKrOVro1UN-ShlNsAak&hl=en&ei=9BPvTKPfMtP4nwfqu_X1Cg&sa=X&oi=book_result&ct=result&resnum=1&ved=0CBcQ6AEwAA#v=onepage&q=%22deadabort
但是由于某种原因,等待 1 完成的进程 2 在语句“exec sql update customers”处阻塞,并且永远不会进入“if(sqlca.sqlcode == DEADABORT)”语句。因此,我永远无法处理僵局。
有人有想法吗?
database - ESQL 是否在工业中使用?
我正在学习数据库课程,我必须编写一个命令行应用程序。教授希望我们编写一个 ESQL(嵌入 SQL)应用程序。
我有一种感觉,这种技术被贬低了。
我们必须使用 oracle 预编译器来翻译 c++ 中的 esql 代码。这种应用程序看起来很难维护。
php 应用程序也可以很好地工作,但他们可能希望命令行应用程序更快地进行评分(使用输入提要进行单元测试)。大家怎么看,Embed SQL 是在业界使用的,值得请教授做一个java 应用吗?还有其他更合适的技术吗?
sql - 如何解决或开始解决 DB2 问题?
当我尝试预编译包含嵌入式 SQL 语句的 DB2 Cobol 应用程序时,我的SYSTERM
文件中出现以下错误:
我认为错误在于它找不到“程序部门”部分,但它在此处的代码中:
c++ - Oracle pro*c 预处理的 .h 头文件中的 EXEC SQL DECLARE 变量
我正在将一些带有嵌入式 SQL 的 C++ 代码移植到带有 oracle 数据库的 linux 服务器中。
数据访问对象是 C++ 类,提供 .select() .insert() .findByPrimaryKey() 等数据库交互方法。
这是 testdao.h 头文件。
这是 testdao.ecpp 文件
Oracle pro*C 预编译器无法处理头文件中的 EXEC SQL。如何声明主机变量,以便不必在每个方法中重复声明它们?
我不能将它们作为全局变量。
sql - 使用 ESQL/C 在 Oracle 中删除一行
我正在尝试用 C 和 ESQL 编写程序。我想做的一件事是每次运行程序时从我的一个表中删除旧行(通过与 SYSDATE 进行比较)。
所以我的 SQL 代码如下所示:
现在我知道这是可行的,因为我使用 SQL+ Worksheet 对其进行了测试
但是当我想像这样使用 ESQL 时:
我的程序只是冻结在那里。
所以我想知道是否可以在 ESQL 中做出这样的声明,如果这是我做错了什么?
postgresql - 带有数组参数的存储过程的 ECPG 调用
我有一个 ECPG 客户端试图获取数据。它使用带有子选择子句的准备好的语句,该子句使用带有 4 个参数的存储函数“getsipid”。我已经将第 4 个参数声明为简单的 varchar。我试图将第四个参数声明为一个数组,但是,ecpg 仅在第四个参数中传递数组的第一个参数,而不是全部。
传递整个 requsr(s) 数组的诀窍是什么。这个数组大小通常最多只能包含 5 个参数。我意识到我可以向函数添加更多参数来克服这个问题。我希望解决方案会更优雅。
感谢您的意见
戴夫
pgc 文件准备了上面的主机变量,并且有一个调用效果。
存储的函数声明为