sql_declare(+Cursor,+SqlCmd,-NoIn,-NoOut,-RC)...
Move to
Next Prev
Up Top
See also
sql_begin
sql_close
sql_close_db
sql_commit
sql_connect_db
sql_declare
sql_descr_in
sql_descr_out
sql_disconnect_db
sql_dualcmd
sql_errmsg
sql_execute
sql_fetch
sql_fetch_buf
sql_fetch_n
sql_get_value
sql_inout
sql_inquire_ingres
sql_logoff
sql_logon
sql_open
sql_open_db
sql_rollback
IF Computer > IF/Prolog > Manuals > IF/Prolog V4.1 マニュアル > IF/Prolog Interfaces > SQLインタフェースマニュアル > IF/SQL述語レファレンス > sql_declare

sql_declare

MINERVA superseeded IF/Prolog. Please see http://www.ifcomputer.co.jp/MINERVA for details.

We discontinued to sell IF/Prolog Dec 31. 2003. For current customers, we continue to provide professional support for IF/Prolog until Dec 31, 2008.

sql_declare(+Cursor,+SqlCmd,-NoIn,-NoOut,-RC)

アトムで与えられたSQLコマンド文字列は構文解析され、Cursorと対応付けられます。

NoInにはSqlCmd中のバインド変数の数が返され、NoOutにはSELECTリスト変数の数が返されます。 RC=0は、成功を意味し、RC < 0は、SQLエラーを意味します。(sql_errmsg/1を参照)

SqlCmd中のSQLキーワードは、大文字、小文字のいずれでも書くことができます。

バインド変数名の前には、コロン`:'(ORACLEの場合)か`?'(INFORMIXとINGRESの場合)をつけなければなりません。

selectリスト変数は、検索されたテーブルのコラム、あるいは、min(<column>),<column>+1のようなコラムから作った式でなければなりません。

バインド変数やselectリスト変数の名前については、sql_inout/2の項を参照して下さい。

sql_declare('immediate',SqlCmd,_,_,RC)はsql_execute(SqlCmd,RC)と同等で、翻訳後すぐにSQLコマンドを実行します。この時、バインド変数もselectリスト変数も存在することはできません。

例: ORACLE

?- _SqlCmd = 'SELECT ename,dep FROM EMP where dep=20', sql_declare(c2,_SqlCmd,NoIn,NoOut,RC).

NoIn = 0 NoOut = 2 RC = 0

?- _SqlCmd = 'select * from emp where ename = :name ', sql_declare(c3,_SqlCmd,NoIn,NoOut,RC).

NoIn = 1 NoOut = 6 RC = 0

?- _SqlCmd = 'insert into emp2 (ename,dep) values (:x,:y)', sql_declare(c4,_SqlCmd,NoIn,NoOut,RC).

NoIn = 2 NoOut = 0 RC = 0

例: INFORMIX

?- _SqlCmd = 'SELECT ename,dep FROM EMP where dep=20', sql_declare(c2,_SqlCmd,NoIn,NoOut,RC).

NoIn = 0 NoOut = 2 RC = 0

?- _SqlCmd = 'select * from emp where ename = ?', sql_declare(c3,_SqlCmd,NoIn,NoOut,RC).

NoIn = 1 NoOut = 6 RC = 0

?- _SqlCmd = 'insert into emp2 (ename,dep) values (?,?)', sql_declare(c4,_SqlCmd,NoIn,NoOut,RC).

NoIn = 2 NoOut = 0 RC = 0

read on...
IF/Prolog by Siemens
Language
English
Japanese
German
Server
USA
Japan
Site Access
Local Index
Local Contents
Site Contents
Site Index
Printer Friendly
For imode
For PDA
Search
document: http://www.ifcomputer.co.jp/IFProlog/Manuals/v4.1/advanced_feature/sql/predref/declare/home_en.html
published 2008/11/17 update 1995/11/7 (c) 1996-2006 IF Computer Japan
IF Computer 5-28-2 Sendagi, Bunkyo-ku Tel +81-3-5814-3352 start (AT) ifcomputer.com
Customer Support Tokyo 113-0022 Japan   http://www.ifcomputer.com
scroll to top managed with ubiCMS