Wide Studio Object Reference

Wide Studio Home
Up to


クラスの型

WSCdbRecord

メソッド関数仕様



WSCdbRecord 関数の説明

書式
WSCdbRecord(WSCdbDatabase* pDatabase)
機能
WSCdbRecordクラスのコンストラクタです。
処理
引数
(in)WSCdbDatabase* db WSCdbDatabaseインスタンス
返値
WS_NO_ERR:成功、WS_ERR:失敗
注意
なし。
サンプル
     WSCdbDatabase db;
     db.setDatabase("PGSQL");
     if(db.open("server", "user", "pass", "db", NULL) == WS_ERR) {
       WSCdbRecode rs(&db);
       long ret = rs.open("select * from shinamono order by code");
       if (ret == WS_NO_ERR){
         //接続。
       }else{
         //接続失敗、エラーメッセージを取得。
         char buffer[1024];
         rs.getErrorMsg(buffer,1024);
       }
     }



WSCdbRecord 関数の説明

書式
WSCdbRecord(WSCvdb* inst)
機能
WSCdbRecordクラスのコンストラクタです。
処理
引数
(in)WSCvdb* inst WSCvdbクラスのインスタンス
返値
WS_NO_ERR:成功、WS_ERR:失敗
注意
なし。
サンプル
     WSCdbRecode rs(newvdb__000);
     long ret = rs.open("select * from shinamono order by code");
     if (ret == WS_NO_ERR){
       //接続。
     }else{
       //接続失敗、エラーメッセージを取得。
       char buffer[1024];
       rs.getErrorMsg(buffer,1024);
     }



open 関数の説明

書式
long open(char* stmt)
機能
SQL文によりデータベースサーバーへの問い合わせを行います。
処理
ODBC、PostgreSQL、MySQLの各APIを通じて SQL文を実行し FETCHカーソルをOPENします。
引数
(in)char* var 実行するSQL文
返値
WS_NO_ERR:成功、WS_ERR:失敗
注意
なし。
サンプル
     WSCdbRecode rs(newvdb__000);
     long ret = rs.open("select * from shinamono order by code");
     if (ret == WS_NO_ERR){
       //接続。
     }else{
       //接続失敗、エラーメッセージを取得。
       char buffer[1024];
       rs.getErrorMsg(buffer,1024);
     }



open 関数の説明

書式
long open(char* stmt, short eCousor, short eAccess)
機能
SQL文によりデータベースサーバーへの問い合わせを行います。
処理
ODBC、PostgreSQL、MySQLの各APIを通じて SQL文を実行し FETCHカーソルをOPENします。
引数
(in)char* stmt 実行するSQL文を指定
(in)short eCursor カーソルの種類を指定
(in)short eAccess アクセスの種類を指定

カーソルの種類に指定できる値には、 次のようなものがあります。
WSCDB_SQL_CURSOR_FORWARD_ONLY 前方スクロール カーソル
WSCDB_SQL_CURSOR_KEYSET_DRIVEN キーセット カーソル
WSCDB_SQL_CURSOR_DYNAMIC 動的カーソルです。
WSCDB_SQL_CURSOR_STATIC 静的カーソル
WSCDB_SQL_CURSOR_TYPE_DEFAULT 前方スクロール カーソル

アクセスの種類に指定できる値には、 次のようなものがあります。
WSCDB_SQL_CONCUR_READ_ONLY カーソルは読み取り専用
WSCDB_SQL_CONCUR_LOCK カーソルは、確実に行を更新できるように、十分な最低ロックを使用
WSCDB_SQL_CONCUR_ROWVER カーソルは、行バージョンによる楽観的な競合制御
WSCDB_SQL_CONCUR_VALUES カーソルは、行の値による楽観的な競合制御
WSCDB_SQL_CONCUR_DEFAULT カーソルは読み取り専用です。更新は出来ません。
返値
WS_NO_ERR:成功、WS_ERR:失敗
注意
なし。
サンプル
     WSCdbRecode rs(newvdb__000);
     long ret = rs.open("select * from shinamono order by code",
                         WSCDB_SQL_CURSOR_KEYSET_DRIVEN,
                         WSCDB_SQL_CONCUR_READ_ONLY);
     if (ret == WS_NO_ERR){
       //接続。
     }else{
       //接続失敗、エラーメッセージを取得。
       char buffer[1024];
       rs.getErrorMsg(buffer,1024);
     }



close 関数の説明

書式
long close()
機能
データベースサーバーへの問い合わせを切断します。
処理
ODBC、PostgreSQL、MySQLの各APIを通じて SQL文を実行しFETCH カーソルをCLOSEします。
引数
なし。
返値
WS_NO_ERR:成功、WS_ERR:失敗
注意
なし。
サンプル
     long ret = rs.close();
     if (ret == WS_NO_ERR){
       //切断成功。
     }else{
       //切断失敗、エラーメッセージを取得。
       char buffer[1024];
       db.getErrorMsg(buffer,1024);
     }



isEOF 関数の説明

書式
WSCbool isEOF()
機能
問い合わせ結果の現在のレコード位置を取得します。
処理
問い合わせ結果のレコード位置が先頭レコード、 最終レコードの範囲かどうかの状態を取得します。
引数
なし。
返値
True:先頭レコード、最終レコードの範囲外状態、 False:先頭レコード、最終レコードの範囲内状態
注意
なし。
サンプル
           WSCbool ret = rs.isEOF();
           if (ret == False){
             //先頭レコード、最終レコードの範囲内状態。
           }else{
             //先頭レコード、最終レコードの範囲外状態。
           }



isOpen 関数の説明

書式
WSCbool isOpen()
機能
データベースサーバーへの問い合わせ状態を取得します。
処理
引数
なし。
返値
True:問合せ状態、False:非問合せ状態
注意
なし。
サンプル
     WSCbool ret = rs.isOpen();
     if (ret == False){
       //非問合せ状態。
     }else{
       //問合せ状態。
     }



getColValue 関数の説明

書式
long getColValue(long index, WSCvariant* var)
機能
項目のデータを取得します。
処理
指定した番号の項目のデータを取得します。
引数
(in)long index 項目の番号を指定します。0 からの連番です。
(in)WSCvariant* var 項目のデータを格納するWSCvariantクラスのポインタを指定します。
返値
WS_NO_ERR:成功、WS_ERR:失敗
注意
なし。
サンプル
  //テーブルの作成とデータの格納
  char buf1[1024];
  strcpy(buf1, "drop table shinamono");
  long ret = newvdb__000->sqlExecute(buf1);
  strcpy(buf1,"create table shinamono(code int, hinmei char(20), nedan float)");
  newvdb__000->sqlExecute(buf1);
  newvdb__000->beginTran();
  strcpy(buf1,"insert into shinamono values(1, 'みかん', 100)");
  newvdb__000->sqlExecute(buf1);
  strcpy(buf1,"insert into shinamono values(2, 'りんご', 200)");
  newvdb__000->sqlExecute(buf1);
  strcpy(buf1,"insert into shinamono values(3, 'バナナ', 300)");
  newvdb__000->sqlExecute(buf1);
  strcpy(buf1,"insert into shinamono values(4, 'メロン', 0)");
  newvdb__000->sqlExecute(buf1);
  newvdb__000->commitTran();

  //データの参照
  WSCdbRecord rs(newvdb__000);
  char var[256];
  WSCstring result;
  newvdb__000->beginTran();
  if(rs.open("select * from shinamono order by code") == WS_NO_ERR) {
    while (!rs.isEOF()) {
      rs.getColValue("code", &var);
      int code = (int)var;
      result << "code:" << (int)var << " ";
      rs.getColValue(0, &var);
      result << "hinmei:" << (char*)var << " ";
      rs.getColValue(1, &var);
      char buf[80];
      double nedan = (float)var + 10;
      sprintf(buf, "%f", (float)var);
      result << "nedan:" << buf << "\n";

      rs.movenext();
    }
    printf("result:\n%s",(char*)result);
  }



getColValue 関数の説明

書式
long getColValue(const char* name, WSCvariant* var)
機能
項目のデータを取得します。
処理
指定した名前の項目のデータを取得します。
引数
(in)const char* name 項目の名前を指定します。
(in)WSCvariant* var 項目のデータを格納する WSCvariant型のポインタを指定します。
返値
WS_NO_ERR:成功、WS_ERR:失敗
注意
なし。
サンプル
  //テーブルの作成とデータの格納
  char buf1[1024];
  strcpy(buf1, "drop table shinamono");
  long ret = newvdb__000->sqlExecute(buf1);
  strcpy(buf1,"create table shinamono(code int, hinmei char(20), nedan float)");
  newvdb__000->sqlExecute(buf1);
  newvdb__000->beginTran();
  strcpy(buf1,"insert into shinamono values(1, 'みかん', 100)");
  newvdb__000->sqlExecute(buf1);
  strcpy(buf1,"insert into shinamono values(2, 'りんご', 200)");
  newvdb__000->sqlExecute(buf1);
  strcpy(buf1,"insert into shinamono values(3, 'バナナ', 300)");
  newvdb__000->sqlExecute(buf1);
  strcpy(buf1,"insert into shinamono values(4, 'メロン', 0)");
  newvdb__000->sqlExecute(buf1);
  newvdb__000->commitTran();

  //データの参照
  WSCdbRecord rs(newvdb__000);
  WSCvariant var;
  WSCstring result;
  newvdb__000->beginTran();
  if(rs.open("select * from shinamono order by code") == WS_NO_ERR) {
    while (!rs.isEOF()) {
      rs.getColValue("code", &var);
      int code = (int)var;
      result << "code:" << (int)var << " ";
      rs.getColValue("hinmei", &var);
      result << "hinmei:" << (char*)var << " ";
      rs.getColValue("nedan", &var);
      char buf[80];
      double nedan = (float)var + 10;
      sprintf(buf, "%f", (float)var);
      result << "nedan:" << buf << "\n";

      rs.movenext();
    }
    printf("result:\n%s",(char*)result);
  }




getColStringValue 関数の説明

書式
long getColStringValue(long index, char* var)
機能
項目のデータを取得します。
処理
指定した番号の項目のデータを文字列で取得します。
引数
(in)long index 項目の番号を指定します。0 からの連番です。
(out)char* var 項目のデータを格納するchar型のポインタを指定します。
返値
WS_NO_ERR:成功、WS_ERR:失敗
注意
バッファのオーバーフローに気を付けて使用して下さい。
サンプル
  //テーブルの作成とデータの格納
  char buf1[1024];
  strcpy(buf1, "drop table shinamono");
  long ret = newvdb__000->sqlExecute(buf1);
  strcpy(buf1,"create table shinamono(code int, hinmei char(20), nedan float)");
  newvdb__000->sqlExecute(buf1);
  newvdb__000->beginTran();
  strcpy(buf1,"insert into shinamono values(1, 'みかん', 100)");
  newvdb__000->sqlExecute(buf1);
  strcpy(buf1,"insert into shinamono values(2, 'りんご', 200)");
  newvdb__000->sqlExecute(buf1);
  strcpy(buf1,"insert into shinamono values(3, 'バナナ', 300)");
  newvdb__000->sqlExecute(buf1);
  strcpy(buf1,"insert into shinamono values(4, 'メロン', 0)");
  newvdb__000->sqlExecute(buf1);
  newvdb__000->commitTran();

  //データの参照
  WSCdbRecord rs(newvdb__000);
  char var[256];
  WSCvariant var1;
  WSCstring result;
  newvdb__000->beginTran();
  if(rs.open("select * from shinamono order by code") == WS_NO_ERR) {
    while (!rs.isEOF()) {
      rs.getColValue("code", &var);
      int code = (int)var;
      result << "code:" << (int)var << " ";
      rs.getColStringValue(0, &var);
      result << "hinmei:" << (char*)var << " ";
      rs.getColValue("nedan", &var1);
      char buf[80];
      double nedan = (float)var1 + 10;
      sprintf(buf, "%f", (float)var1);
      result << "nedan:" << buf << "\n";

      rs.movenext();
    }
    printf("result:\n%s",(char*)result);
  }



getColStringValue 関数の説明

書式
long getColStringValue(const char* name, char* var)
機能
項目のデータを取得します。
処理
指定した名前の項目のデータを文字列で取得します。
引数
(in)const char* name 項目の名前を指定します。
(out)char* var 項目のデータを格納する char型のポインタを指定します。
返値
WS_NO_ERR:成功、WS_ERR:失敗
注意
バッファのオーバーフローに気を付けて使用して下さい。
サンプル
  //テーブルの作成とデータの格納
  char buf1[1024];
  strcpy(buf1, "drop table shinamono");
  long ret = newvdb__000->sqlExecute(buf1);
  strcpy(buf1,"create table shinamono(code int, hinmei char(20), nedan float)");
  newvdb__000->sqlExecute(buf1);
  newvdb__000->beginTran();
  strcpy(buf1,"insert into shinamono values(1, 'みかん', 100)");
  newvdb__000->sqlExecute(buf1);
  strcpy(buf1,"insert into shinamono values(2, 'りんご', 200)");
  newvdb__000->sqlExecute(buf1);
  strcpy(buf1,"insert into shinamono values(3, 'バナナ', 300)");
  newvdb__000->sqlExecute(buf1);
  strcpy(buf1,"insert into shinamono values(4, 'メロン', 0)");
  newvdb__000->sqlExecute(buf1);
  newvdb__000->commitTran();

  //データの参照
  WSCdbRecord rs(newvdb__000);
  char var[256];
  WSCstring result;
  newvdb__000->beginTran();
  if(rs.open("select * from shinamono order by code") == WS_NO_ERR) {
    while (!rs.isEOF()) {
      rs.getColValue("code", &var);
      int code = (int)var;
      result << "code:" << (int)var << " ";
      rs.getColStringValue("hinmei", &var);
      result << "hinmei:" << (char*)var << " ";
      rs.getColValue("nedan", &var);
      char buf[80];
      double nedan = (float)var + 10;
      sprintf(buf, "%f", (float)var);
      result << "nedan:" << buf << "\n";

      rs.movenext();
    }
    printf("result:\n%s",(char*)result);
  }



setColValue 関数の説明

書式
long setColValue(long index, WSCvariant var)
機能
項目のデータを取得します。
処理
指定した番号の項目のデータ文字列で取得します。
引数
(in)long index 項目の番号を指定します。
(in)WSCvariant var 設定するデータを指定します。
返値
WS_NO_ERR:成功、WS_ERR:失敗
注意
プライマリキーの設定とキーの not null オプションが 必要になります。
ODBCの場合はODBCドライバによってサポートされない場合が あります。
PostgreSQLでは oid を使用して実現しております。
MySQLでは _rowid を使用して実現しております。
サンプル
  //テーブルの作成とデータの格納
  char buf1[1024];
  strcpy(buf1, "drop table shinamono");
  long ret = newvdb__000->sqlExecute(buf1);
  strcpy(buf1,"create table shinamono(code int not null, hinmei char(20), nedan float, primary key(code))");
  newvdb__000->sqlExecute(buf1);
  newvdb__000->beginTran();
  strcpy(buf1,"insert into shinamono values(1, 'みかん', 100)");
  newvdb__000->sqlExecute(buf1);
  strcpy(buf1,"insert into shinamono values(2, 'りんご', 200)");
  newvdb__000->sqlExecute(buf1);
  strcpy(buf1,"insert into shinamono values(3, 'バナナ', 300)");
  newvdb__000->sqlExecute(buf1);
  strcpy(buf1,"insert into shinamono values(4, 'メロン', 0)");
  newvdb__000->sqlExecute(buf1);
  newvdb__000->commitTran();

  //データの参照
  WSCdbRecord rs(newvdb__000);
  WSCvariant var;
  WSCstring result;
  newvdb__000->beginTran();
  if(rs.open("select * from shinamono order by code", SQL_CURSOR_KEYSET_DRIVEN) == WS_NO_ERR) {
    while (!rs.isEOF()) {
      rs.getColValue("code", &var);
      int code = (int)var;
      result << "code:" << (int)var << " ";
      rs.getColStringValue("hinmei", &var);
      result << "hinmei:" << (char*)var << " ";
      rs.getColValue("nedan", &var);
      char buf[80];
      double nedan = (float)var + 10;
      sprintf(buf, "%f", (float)var);
      result << "nedan:" << buf << "\n";
      if(code != 5) {
        rs.edit();
        rs.setColValue(0, nedan);
        rs.update();
      } else {
        rs.deleterow();
      }

      rs.movenext();
    }
    printf("result:\n%s",(char*)result);
  }



setColValue 関数の説明

書式
long setColValue(const char* name, WSCvariant var)
機能
項目のデータを取得します。
処理
指定した番号の項目のデータ文字列で取得します。
引数
(in)const char* name 項目の名前を指定します。
(in)WSCvariant var 設定するデータを指定します。
返値
WS_NO_ERR:成功、WS_ERR:失敗
注意
プライマリキーの設定とキーの not null オプションが 必要になります。
ODBCの場合はODBCドライバによってサポートされない場合が あります。
PostgreSQLでは oid を使用して実現しております。
MySQLでは _rowid を使用して実現しております。
サンプル
  //テーブルの作成とデータの格納
  char buf1[1024];
  strcpy(buf1, "drop table shinamono");
  long ret = newvdb__000->sqlExecute(buf1);
  strcpy(buf1,"create table shinamono(code int not null, hinmei char(20), nedan float, primary key(code))");
  newvdb__000->sqlExecute(buf1);
  newvdb__000->beginTran();
  strcpy(buf1,"insert into shinamono values(1, 'みかん', 100)");
  newvdb__000->sqlExecute(buf1);
  strcpy(buf1,"insert into shinamono values(2, 'りんご', 200)");
  newvdb__000->sqlExecute(buf1);
  strcpy(buf1,"insert into shinamono values(3, 'バナナ', 300)");
  newvdb__000->sqlExecute(buf1);
  strcpy(buf1,"insert into shinamono values(4, 'メロン', 0)");
  newvdb__000->sqlExecute(buf1);
  newvdb__000->commitTran();

  newvdb__000->beginTran();
  //データの参照
  WSCdbRecord rs(newvdb__000);
  WSCvariant var;
  WSCstring result;
  newvdb__000->beginTran();
  if(rs.open("select * from shinamono order by code", SQL_CURSOR_KEYSET_DRIVEN) == WS_NO_ERR) {
    while (!rs.isEOF()) {
      rs.getColValue("code", &var);
      int code = (int)var;
      result << "code:" << (int)var << " ";
      rs.getColStringValue("hinmei", &var);
      result << "hinmei:" << (char*)var << " ";
      rs.getColValue("nedan", &var);
      char buf[80];
      double nedan = (float)var + 10;
      sprintf(buf, "%f", (float)var);
      result << "nedan:" << buf << "\n";
      if(code != 5) {
        rs.edit();
        rs.setColValue("nedan", nedan);
        rs.update();
      } else {
        rs.deleterow();
      }

      rs.movenext();
    }
    printf("result:\n%s",(char*)result);
  }
  newvdb__000->commitTran();



edit 関数の説明

書式
long edit()
機能
項目の編集を可能とします。
処理
引数
なし。
返値
WS_NO_ERR:成功、WS_ERR:失敗
注意
カーソルの種類が SQL_CURSOR_KEYSET_DRIVEN に 設定されていなければいけません。
プライマリキーの設定とキーの not null オプションが 必要になります。
ODBCの場合はODBCドライバによってサポートされない場合が あります。
PostgreSQLでは oid を使用して実現しております。
MySQLでは _rowid を使用して実現しております。
サンプル
setColValue のサンプルを参照ください。



update 関数の説明

書式
long update()
機能
現在のレコードを更新します。
処理
現在のレコードを UPDATE 又は INSERTします。
引数
なし。
返値
WS_NO_ERR:成功、WS_ERR:失敗
注意
edit、addnew 関数が先に実行されている必要があります。
プライマリキーの設定とキーの not null オプションが 必要になります。
ODBCの場合はODBCドライバによってサポートされない場合が あります。
PostgreSQLでは oid を使用して実現しております。
MySQLでは _rowid を使用して実現しております。
サンプル
setColValue のサンプルを参照ください。



addnew 関数の説明

書式
long addnew()
機能
レコードの追加を行います。
処理
レコードの追加を行う準備を行います。
引数
なし。
返値
WS_NO_ERR:成功、WS_ERR:失敗
注意
プライマリキーの設定とキーの not null オプションが 必要になります。
ODBCの場合はODBCドライバによってサポートされない場合が あります。
PostgreSQLでは oid を使用して実現しております。
MySQLでは _rowid を使用して実現しております。
サンプル
  //テーブルの作成とデータの格納
  char buf1[1024];
  strcpy(buf1, "drop table shinamono");
  long ret = newvdb__000->sqlExecute(buf1);
  strcpy(buf1,"create table shinamono(code int not null, hinmei char(20), nedan float, primary key(code))");

  newvdb__000->beginTran();
  //データの参照
  WSCdbRecord rs(newvdb__000);
  WSCvariant var;
  WSCstring result;
  newvdb__000->beginTran();
  if(rs.open("select * from shinamono order by code", SQL_CURSOR_KEYSET_DRIVEN) == WS_NO_ERR) {
    if (rs.isEOF()) {
      rs.addnew();
      rs.setColValue("code", 1);
      rs.setColValue("hinmei", 'みかん');
      rs.setColValue("nedan", 100);
      rs.update();
    }
  }
  newvdb__000->commitTran();



deleterow 関数の説明

書式
long deleterow()
機能
現在のレコードを削除します。
処理
引数
なし。
返値
WS_NO_ERR:成功、WS_ERR:失敗
注意
なし。
サンプル
setColValue のサンプルを参照ください。



moveNext 関数の説明

書式
long moveNext()
機能
現在のレコードを次のレコードに移動します。
処理
引数
なし。
返値
WS_NO_ERR:成功、WS_ERR:失敗
注意
なし。
サンプル
setColValue のサンプルを参照ください。



movePrevious 関数の説明

書式
long movePrevious()
機能
現在のレコードを前のレコードに移動します。
処理
引数
なし。
返値
WS_NO_ERR:成功、WS_ERR:失敗
注意
なし。
サンプル
  //データの参照
  WSCdbRecord rs(newvdb__000);
  WSCvariant var;
  WSCstring result;
  newvdb__000->beginTran();
  if(rs.open("select * from shinamono order by code", SQL_CURSOR_KEYSET_DRIVEN) == WS_NO_ERR) {
    if (!rs.isEOF()) {
      rs.moveLast();
      rs.movePrevious();
    }
  }



moveFirst 関数の説明

書式
long moveFirst()
機能
現在のレコードを先頭のレコードに移動します。
処理
引数
なし。
返値
WS_NO_ERR:成功、WS_ERR:失敗
注意
ODBCの場合はODBCドライバによって動作が正しく行われない場合が あります。
サンプル
  //データの参照
  WSCdbRecord rs(newvdb__000);
  WSCvariant var;
  WSCstring result;
  newvdb__000->beginTran();
  if(rs.open("select * from shinamono order by code", SQL_CURSOR_KEYSET_DRIVEN) == WS_NO_ERR) {
    if (!rs.isEOF()) {
      rs.moveLast();
      rs.moveFirst();
    }
  }



moveLast 関数の説明

書式
long moveLast()
機能
現在のレコードを最終のレコードに移動します。
処理
引数
なし。
返値
WS_NO_ERR:成功、WS_ERR:失敗
注意
ODBCの場合はODBCドライバによって動作が正しく行われない場合が あります。
サンプル
moveFirst のサンプルを参照ください。



getColName 関数の説明

書式
long getColName(long index, char* name)
機能
指定した番号の項目名を取得します。
処理
引数
(in)long index 項目の番号を指定します。0 からの連番です。
(in)char* name カラム名を格納するchar型のポインタを指定します。
返値
WS_NO_ERR:成功、WS_ERR:失敗
注意
なし。
サンプル
  //データの参照
  WSCdbRecord rs(newvdb__000);
  WSCvariant var;
  WSCstring result;
  if(rs.open("select * from shinamono order by code", SQL_CURSOR_KEYSET_DRIVEN) == WS_NO_ERR) {
    if (!rs.isEOF()) {
      char name[31];
      long ret = getColName(0, name);
      printf("name : %s\n", name);
    }
  }



getColIndex 関数の説明

書式
long getColIndex(const char* name)
機能
指定した名前の項目番号を取得します。 取得される値は0からの連番です。
処理
引数
(in)const char* name 項目の名前を指定します。
返値
0以上:成功、WS_ERR:失敗
注意
なし。
サンプル
  //データの参照
  WSCdbRecord rs(newvdb__000);
  WSCvariant var;
  WSCstring result;
  if(rs.open("select * from shinamono order by code", SQL_CURSOR_KEYSET_DRIVEN) == WS_NO_ERR) {
    if (!rs.isEOF()) {
      char name[31];
      long index = getColName("code");
      printf("index : %d\n", index);
    }
  }



getColType 関数の説明

書式
long getColType(long index)
機能
指定した番号の項目種別を取得します。
処理
引数
(in)long index 項目の番号を指定します。
返値
0以上:成功、WS_ERR:失敗
WSCDB_FIELD_TYPE_CHAR 文字列です。
WSCDB_FIELD_TYPE_NUMERIC 文字列の数値型です。
WSCDB_FIELD_TYPE_DECIMAL 文字列の数値型です。
WSCDB_FIELD_TYPE_INTEGER 数値の long型です。
WSCDB_FIELD_TYPE_SMALLINT 数値の short型です。
WSCDB_FIELD_TYPE_FLOAT 数値の float型です。
WSCDB_FIELD_TYPE_REAL 数値の float型です。
WSCDB_FIELD_TYPE_DOUBLE 数値の double型です。
WSCDB_FIELD_TYPE_DATE 文字列の日付型です。
WSCDB_FIELD_TYPE_TIME 文字列の時間型です。
WSCDB_FIELD_TYPE_TIMESTAMP 文字列のタイムスタンプ型です。
WSCDB_FIELD_TYPE_NONE 文字列のその他型です。
注意
なし。
サンプル
  //データの参照
  WSCdbRecord rs(newvdb__000);
  WSCvariant var;
  WSCstring result;
  if(rs.open("select * from shinamono order by code", SQL_CURSOR_KEYSET_DRIVEN) == WS_NO_ERR) {
    if (!rs.isEOF()) {
      char name[31];
      long type = getColType(0);
      printf("type : %d\n", type);
    }
  }



getColLength 関数の説明

書式
long getColLength(long index)
機能
指定した番号の項目の長さを取得します。
処理
引数
(in)long index 項目の番号を指定します。
返値
項目の長さ
注意
なし。
サンプル
  //データの参照
  WSCdbRecord rs(newvdb__000);
  WSCvariant var;
  WSCstring result;
  if(rs.open("select * from shinamono order by code", SQL_CURSOR_KEYSET_DRIVEN) == WS_NO_ERR) {
    long count = rs.getRowCount();
    for (long i = 0; i < count; i++) {
      char* name = new char(rs.getColLength(0));
      rs.getColValue("name", name);
      delete name;
      rs.moveNext();
    }
  }



getColLength 関数の説明

書式
long getColLength(const char* name)
機能
項目名で指定した番号の項目の長さで取得します。
処理
引数
(in)const char* name 項目の名前を指定します。
返値
項目の長さ
注意
なし。
サンプル
  //データの参照
  WSCdbRecord rs(newvdb__000);
  WSCvariant var;
  WSCstring result;
  if(rs.open("select * from shinamono order by code", SQL_CURSOR_KEYSET_DRIVEN) == WS_NO_ERR) {
    long count = rs.getRowCount();
    for (long i = 0; i < count; i++) {
      char* name = new char(rs.getColLength(0));
      rs.getColValue("name", name);
      delete name;
      rs.moveNext();
    }
  }



getRowCount 関数の説明

書式
long getRowCount()
機能
問合せした結果のレコード件数を取得します。
処理
引数
なし。
返値
レコード件数
注意
なし。
サンプル
  //データの参照
  WSCdbRecord rs(newvdb__000);
  WSCvariant var;
  WSCstring result;
  if(rs.open("select * from shinamono order by code", SQL_CURSOR_KEYSET_DRIVEN) == WS_NO_ERR) {
    long count = rs.getRowCount();
    for (long i = 0; i < count; i++) {
      rs.getColValue(0, &var);
      rs.moveNext();
    }
  }



getColCount 関数の説明

書式
long getColCount()
機能
問合せした結果の項目数を取得します。
処理
引数
なし。
返値
項目数
注意
なし。
サンプル
  //データの参照
  WSCdbRecord rs(newvdb__000);
  WSCvariant var;
  WSCstring result;
  if(rs.open("select * from shinamono order by code", SQL_CURSOR_KEYSET_DRIVEN) == WS_NO_ERR) {
    long count = rs.getRowCount();
    for (long i = 0; i < count; i++) {
      for(long cols = 0; cols < rs.getColCount; cols++) {
        rs.getColValue(cols, &var);
      }
      rs.moveNext();
    }
  }



getErrorMsg 関数の説明

書式
void getErrorMsg(char* szState, char* szMsg)
機能
エラーメッセージを取得します。
処理
引数
(in)char* szState エラー番号を格納する変数を指定します。
(in)char* szMsg エラーメッセージを格納する変数を指定します。
返値
なし。
注意
なし。
サンプル
  //データの参照
  WSCdbRecord rs(newvdb__000);
  WSCvariant var;
  WSCstring result;
  if(rs.open("select * from shinamono order by code", SQL_CURSOR_KEYSET_DRIVEN) != WS_NO_ERR) {
    char szStatus[10];
    char szMessage[256];
    getErrorMsg(szStatus, szMessage);
    printf("db error %s:%s", szStatus, szMessage);
  }


Document Release 3.70

For Use with Wide Studio Release 3.70, Spring 2004


WideStudio Home | Up to

Copyright(C) WideStudio Development Team, 1999-2004 Last modified: May. 25, 2004