我写了下一个Pascal代码
PROGRAM demo1 (OUTPUT);
%include "sqlr$include:sqlrdef.pas"
VAR
query : VARYING [50] OF CHAR;
BEGIN
query:= "select * from countries";
sqlr$test (query);
END.
“ sqlrdef.pas”文件包括
[EXTERNAL] FUNCTION sqlr$test (data : string) : INTEGER; EXTERNAL;
sqlr $ test它是C函数
unsigned long SQLR$TEST (char *data)
{
printf ("data is [%s] \n", data);
return SQLR$_NORMAL;
}
但是当我在Pascal上执行程序时,我得到下一个输出
data is []
为了正确地将参数从Pascal传递到C函数,我需要更改什么?
你应该用
%stdescr query_dsc : [CLASS_S] PACKED ARRAY [$L1..$U1: INTEGER] OF CHAR
和
query : PACKED ARRAY [1..40] OF CHAR VALUE 'select * from countries';
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句