Develop and Download Open Source Software

Browse Subversion Repository

Contents of /kz_odbc_sample.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1 - (show annotations) (download) (as text)
Fri Apr 15 01:04:03 2011 UTC (12 years, 10 months ago) by ohfuji
File MIME type: text/x-c++src
File size: 2313 byte(s)


1 #include <iostream>
2 #include <time.h>
3 #include "kz_odbc.h"
4
5 using namespace std;
6
7 int main(int argc, char* argv[])
8 {
9 // ACCESSへのデータソースを介さない接続
10 // DBQ=にmdbファイルへのパスを記載する
11 kz_odbc db("Driver=Microsoft Access Driver (*.mdb); DBQ=test.mdb",true); // 手動コミットモード
12 kz_stmt stmt(&db);
13
14 // テーブル定義の表示
15 kz_resultset_array result = stmt.tables();
16 for ( kz_resultset_array::iterator i = result.begin(); i < result.end(); i++ ) {
17 for ( kz_resultset::iterator j = i->begin(); j != i->end(); j++ ) {
18 cout << j->first << ":";
19 cout << j->second << ", ";
20 }
21 cout << endl;
22 kz_stmt stmt2(&db);
23 kz_resultset_array result_col = stmt2.columns((*i)["TABLE_NAME"].c_str());
24 for ( kz_resultset_array::iterator k = result_col.begin(); k < result_col.end(); k++ ) {
25 for ( kz_resultset::iterator l = k->begin(); l != k->end(); l++ ) {
26 cout << " " << l->first << ":";
27 cout << l->second << endl;
28 }
29 cout << endl;
30 }
31 cout << endl;
32 }
33
34
35 int zero = 0;
36 time_t now_time = time(NULL);
37 struct tm *ts = localtime(&now_time);
38
39 // テーブルのインサート
40 char *sql = "INSERT INTO test( col1, col2, col3) VALUES(?,?,?)";
41 stmt, sql, "test 1", 100, ts, endsql;
42
43 // zeroをインサートする時はいったん変数に入れる(ヌルポインタ特別がつかない為)
44 ts = localtime(&now_time);
45 stmt, sql, "test 2", zero, ts, endsql;
46
47 // テーブルからデータの取得(一括取得)
48 result = (stmt, "SELECT * FROM test", endsqlrs);
49 kz_resultset_array::iterator i;
50 for ( i = result.begin(); i < result.end(); i++ ) {
51 cout << (*i)["col1"] << ", ";
52 cout << (*i)["col2"] << ", ";
53 cout << (*i)["col3"] << ", ";
54 cout << endl;
55 }
56 cout << endl;
57
58 // テーブルからデータの取得(1行ごとに取得)
59 stmt, "SELECT * FROM test", endsql;
60 kz_string_array result2 = stmt.next();
61 while ( !result2.empty() ) {
62 cout << result2[0] << ",";
63 cout << result2[1] << ",";
64 cout << result2[2] << ",";
65 cout << result2[3] << ",";
66 cout << endl;
67 result2 = stmt.next();
68 }
69
70 // エラーの表示(あれば表示する)
71 kz_string_array errs = db.errors();
72 kz_string_array::iterator j;
73 for ( j = errs.begin(); j < errs.end(); j++ ) {
74 cout << *j << endl;
75 }
76
77 // コミット Rollback()を呼び出すとロールバックされる
78 db.Commit();
79 }

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26