No | メソッド | 機能 |
1 | RtdbOpen | DBへ接続する。 |
2 | RtdbClose | DBを切断する。 |
3 | RtdbWrite | DBへデータを書き込む。 |
4 | RtdbSetReader | DBの読み込み先を指定する。 |
5 | RtdbRead | DBからデータを読み込む。 |
6 | RtdbGet | DBから読込んだ値を取り出す。 |
7 | RtdbClearReader | DBの読み込みを終了する。 |
/*****************************************************************************
*
* FILE NAME: DbaHSmpl.c
*
* DESCRIPTION: メインプログラムモジュール
*
\*****************************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <rt.h>
#include <RtDbaH.h>
/*****************************************************************************
*
* FUNCTION: main
*
* DESCRIPTION: メイン
*
*
\*****************************************************************************/
void main(int argc, char* argv[])
{
int inRtn; // 戻り値の取得用
RTHANDLE hDB; // DBハンドル格納用
int inSql; // SQL管理番号格納用
DWORD dwCnt; // レコード数
WORD woTO = 3000; // タイムアウト時間
char chReadVal[32]; // DBから読込んだ値
char chWriteVal[32]; // DBへ書込む値
char chSql[128]; // SQL文格納用
// DBへ接続する
inRtn = RtdbOpen ( "rtdbawork", // Data Source Name
"", // データベース名
"", // 接続ユーザー名
"", // ユーザーパスワード
&hDB); // データベースハンドルを取得
if (0 > inRtn){
printf("RtdbOpen Error: ST[%d]\n", inRtn);
return;
}
// DBからデータの読み込み先を指定する
inRtn = RtdbSetReader (hDB, "DBA_TABLE01", "NUM_VAL01", "");
if (0 > inRtn){
printf("RtdbSetReader Error: ST[%d]\n", inRtn);
return;
}
// データを読み込み、値を取り出す
while (TRUE == RtdbRead (hDB)){
inRtn = RtdbGet(hDB, "NUM_VAL01", chReadVal, sizeof(chReadVal));
if (0 > inRtn){
printf("RtdbGet Error: ST[%d]\n", inRtn);
return;
}
}
// 最後に読込んだ値に1加算した値をDBへ書き込む
sprintf(chWriteVal, "%d", atoi(chReadVal) + 1);
inRtn = RtdbWrite(hDB, "DBA_TABLE01", "NUM_VAL01", chWriteVal);
if (0 > inRtn){
printf("RtdbGet Error: ST[%d]\n", inRtn);
return;
}
inRtn = RtdbClearReader (hDB); // 読み込みを終了する
if (0 > inRtn){
printf("RtdbClearReader Error: ST[%d]\n", inRtn);
return;
}
inRtn = RtdbClose (hDB); // DBを切断する
if (0 > inRtn){
printf("RtdbClose Error: ST[%d]\n", inRtn);
return;
}
}
No | メソッド | 機能 |
1 | RtdbConnect | DBへ接続する。 |
2 | RtdbDisconnect | DBを切断する。 |
3 | RtdbCreateDataTable | SELECT文を発行してDataTableを生成する。 |
4 | RtdbGetString | SELECT結果から指定したフィールドの値を文字列で取得する。 |
5 | RtdbGetInt | SELECT結果から指定したフィールドの値をINT型の値で取得する。 |
6 | RtdbGetLong | SELECT結果から指定したフィールドの値をLONG型の値で取得する。 |
7 | RtdbExecuteSql | INSERT、UPDATE、DELETE文を発行する。 |
8 | RtdbExecuteFunction | ストアドプロシージャを発行する。 |
9 | RtdbClearSqlResult | RtdbCreateDataTable、RtdbExecuteSql、RtdbExecuteFunctionの実行結果を解放する。 |
10 | RtdbBeginTransaction | DBのトランザクションを開始する。 |
11 | RtdbCommitTransaction | DBのトランザクションを完了する。 |
12 | RtdbRollbackTransaction | DBのトランザクションをロールバックする。 |
13 | RtdbGetSarviceStatus | DBのサービスとの接続状態を取得する。 |
14 | RtdbGetConnectStatus | DB通信プロセスとの通信状態を取得する。 |
15 | RtdbGetRec | SELECT結果から指定した1レコードを取得する。 |
16 | RtdbGetRec | SELECT結果から指定した1レコードを取得する。 |
/*****************************************************************************
*
* FILE NAME: DbaLSmpl.c
*
* DESCRIPTION: メインプログラムモジュール
*
\*****************************************************************************/
#include <stdio.h>
#include <stdio.h>
#include <rt.h>
#include <RtDbaL.h>
/*****************************************************************************
*
* FUNCTION: main
*
* DESCRIPTION: メイン
*
*
\*****************************************************************************/
void main(int argc, char* argv[])
{
int inRtn; // 戻り値の取得用
RTHANDLE hDB; // DBハンドル格納用
int inSql; // SQL管理番号格納用
DWORD dwCnt; // レコード数
WORD woTO = 3000; // タイムアウト時間
int inVal; // DBから読込んだ値
char chSql[128]; // SQL文格納用
// DBへ接続する
inRtn = RtdbConnect("rtdbawork", // Data Source Name
"", // データベース名
"", // 接続ユーザー名
"", // ユーザーパスワード
&hDB, // データベースハンドルを取得
woTO); // タイムアウト(ミリ秒)
if (0 > inRtn){
printf("RtdbConnect Error: ST[%d]\n", inRtn);
return;
}
// DBのテーブルから値の最大値を読込む
inSql = RtdbCreateDataTable(hDB,
"SELECT MAX(NUM_VAL01) AS MAX_NUM01 FROM DBA_TABLE01", woTO ,&dwCnt);
if (0 > inSql){
printf("RtdbCreateDataTable Error: ST[%d]\n", inSql);
return;
}
// SELECT結果から値を取得する
inRtn = RtdbGetInt(hDB, inSql, 0, "MAX_NUM01", &inVal, woTO);
if (0 > inRtn){
printf("RtdbGetInt Error: ST[%d]\n", inRtn);
return;
}
// SELECT結果を解放する
inRtn = RtdbClearSqlResult(hDB, inSql, woTO);
if (0 > inRtn){
printf("RtdbClearSqlResult Error: ST[%d]\n", inRtn);
return;
}
// DBのテーブルへ最大値へ1加算した値を書込みます
sprintf(chSql, "INSERT INTO DBA_TABLE01(NUM_VAL01)VALUES(%d)", (inVal + 1));
inRtn = RtdbExecuteSql(hDB, chSql, woTO);
if (0 > inRtn){
printf("RtdbExecuteSql Error: ST[%d]\n", inRtn);
return;
}
// DBを切断する
inRtn = RtdbDisconnect(hDB, woTO);
if (0 > inRtn){
printf("RtdbDisconnect Error: ST[%d]\n", inRtn);
return;
}
}