質問編集履歴

3

ODBCドライバーについて追記

2021/01/18 05:59

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -254,6 +254,10 @@
254
254
 
255
255
  DB:PostgreSQL
256
256
 
257
+ ODBCドライバ情報:PostgreSQL ODBC Driver(ANSI)
258
+
259
+
260
+
257
261
  添付画像はODBCアドミニストレータの設定です。
258
262
 
259
263
  ![ODBCアドミニストレータ](b30efff3fdc2e37830edc15ee3974192.png)

2

変更依頼に合った通りエラー内容のチェック関数を導入しました。

2021/01/18 05:59

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -14,37 +14,59 @@
14
14
 
15
15
  ```
16
16
 
17
- PS C:\Users\stdjpn\desktop> g++ sqltest.cpp -l odbc32 -o sqltest.exe
17
+ 接続成功
18
+
18
-
19
+ 接続成功
20
+
19
- PS C:\Users\stdjpn\desktop> ./sqltest.exe
21
+ 不明なエラー
22
+
20
-
23
+ 不明なエラー
24
+
21
- 1878356328(1878229032),oLo@(6),odo@oa(0),
25
+ 1878278344(0),Lo@(1878356328),do@oa(6)
22
-
26
+
23
- 1878356328(1878229032),oLo@(6),odo@oa(0),
27
+ 1878278344(0),Lo@(1878356328),do@oa(6)
24
-
28
+
25
- 1878356328(1878229032),oLo@(6),odo@oa(0),
29
+ 1878278344(0),Lo@(1878356328),do@oa(6)
26
-
30
+
27
- 1878356328(1878229032),oLo@(6),odo@oa(0),
31
+ 1878278344(0),Lo@(1878356328),do@oa(6)
28
-
32
+
29
- 1878356328(1878229032),oLo@(6),odo@oa(0),
33
+ 1878278344(0),Lo@(1878356328),do@oa(6)
30
-
34
+
31
- 1878356328(1878229032),oLo@(6),odo@oa(0),
35
+ 1878278344(0),Lo@(1878356328),do@oa(6)
32
-
36
+
33
- 1878356328(1878229032),oLo@(6),odo@oa(0),
37
+ 1878278344(0),Lo@(1878356328),do@oa(6)
34
-
38
+
35
- 1878356328(1878229032),oLo@(6),odo@oa(0),
39
+ 1878278344(0),Lo@(1878356328),do@oa(6)
36
-
40
+
37
- 1878356328(1878229032),oLo@(6),odo@oa(0),
41
+ 1878278344(0),Lo@(1878356328),do@oa(6)
42
+
38
-
43
+ 1878278344(0),Lo@(1878356328),do@oa (6)
44
+
39
- 1878356328(1878229032),oLo@(6),odo@oa(0),
45
+ 1878278344(0),Lo@(1878356328),do@oa(6)
40
-
46
+
41
- 1878356328(1878229032),oLo@(6),odo@oa(0),
47
+ 1878278344(0),Lo@(1878356328),do@oa(6)
42
-
48
+
43
- 1878356328(1878229032),oLo@(6),odo@oa(0),
49
+ 1878278344(0),Lo@(1878356328),do@oa(6)
44
-
50
+
45
- 1878356328(1878229032),oLo@(6),odo@oa(0),
51
+ 1878278344(0),Lo@(1878356328),do@oa(6)
46
-
52
+
47
- 1878356328(1878229032),oLo@(6),odo@oa(0),
53
+ 1878278344(0),Lo@(1878356328),do@oa(6)
54
+
55
+ 1878278344(0),Lo@(1878356328),do@oa(6)
56
+
57
+ 1878278344(0),Lo@(1878356328),do@oa(6)
58
+
59
+ 1878278344(0),Lo@(1878356328),do@oa(6)
60
+
61
+ 1878278344(0),Lo@(1878356328),do@oa(6)
62
+
63
+ 1878278344(0),Lo@(1878356328),do@oa(6)
64
+
65
+ 1878278344(0),Lo@(1878356328),do@oa(6)
66
+
67
+ 1878278344(0),Lo@(1878356328),do@oa(6)
68
+
69
+ 1878278344(0),Lo@(1878356328),do@oa(6)
48
70
 
49
71
  ```
50
72
 
@@ -86,6 +108,10 @@
86
108
 
87
109
 
88
110
 
111
+ void rc_hantei(int rc);
112
+
113
+
114
+
89
115
  int main( int argc , char* argv[] ){
90
116
 
91
117
 
@@ -102,7 +128,7 @@
102
128
 
103
129
  SQLCHAR CompliteConnect[255];//データの保管用
104
130
 
105
- SWORD len; //???
131
+ SWORD len;
106
132
 
107
133
 
108
134
 
@@ -110,18 +136,28 @@
110
136
 
111
137
  rc = SQLAllocEnv(&henv);
112
138
 
139
+ rc_hantei(rc);
140
+
113
- rc = SQLAllocConnect(henv,&hdbc);
141
+ rc = SQLAllocHandle(SQL_HANDLE_DBC,henv,&hdbc);
142
+
114
-
143
+ rc_hantei(rc);
144
+
115
- rc = SQLDriverConnect(hdbc,NULL,
145
+ rc = SQLConnect(hdbc,
116
-
146
+
117
- (unsigned char*)"DSN=postgresqltest;UID=higashi_g;PWD=Stdjpn1116;",SQL_NTS,
147
+ (unsigned char*)"postgresqltest",SQL_NTS,
148
+
118
-
149
+ (unsigned char*)"postgres",SQL_NTS,
150
+
151
+ (unsigned char*)"Gen97702",SQL_NTS);
152
+
119
- CompliteConnect,255,
153
+ rc_hantei(rc);
120
-
121
- &len,SQL_DRIVER_NOPROMPT);
122
154
 
123
155
  rc = SQLAllocStmt(hdbc,&hstmt);
124
156
 
157
+ rc_hantei(rc);
158
+
159
+
160
+
125
161
  //*********************************************************************
126
162
 
127
163
  SQLCHAR name[data_size],add[data_size];
@@ -130,9 +166,11 @@
130
166
 
131
167
  //---------------------------------------------------------------------
132
168
 
169
+ SQLCHAR mei[] ="SELECT * FROM test_table01;";
170
+
133
171
  rc = SQLExecDirect(hstmt,
134
172
 
135
- (unsigned char*)"SELECT * FROM test_table01;",SQL_NTS);
173
+ mei,SQL_NTS);
136
174
 
137
175
  SQLBindCol(hstmt,1,SQL_C_ULONG,&no,0,&cbno);
138
176
 
@@ -152,12 +190,14 @@
152
190
 
153
191
  << name << "(" << cbname << "),"
154
192
 
155
- << add << "(" << cbadd << ")," << endl;
193
+ << add << "(" << cbadd << ")" << endl;
156
-
194
+
157
- }
195
+ }
158
196
 
159
197
  //*********************************************************************
160
198
 
199
+
200
+
161
201
  //後処理
162
202
 
163
203
  rc = SQLFreeStmt(hstmt,SQL_DROP);//ステートメントリソース解放
@@ -170,6 +210,22 @@
170
210
 
171
211
  }
172
212
 
213
+
214
+
215
+ void rc_hantei(int rc){
216
+
217
+ if( rc == SQL_SUCCESS )cout << "接続成功" << endl;
218
+
219
+ else if( rc == SQL_SUCCESS_WITH_INFO )cout << "警告あり" << endl;
220
+
221
+ else if( rc == SQL_INVALID_HANDLE )cout << "無効なハンドル" << endl;
222
+
223
+ else if( rc == SQL_ERROR )cout << "不明なエラー" << endl;
224
+
225
+ else cout << "?? debug error! ??" << endl;
226
+
227
+ }
228
+
173
229
  ```
174
230
 
175
231
 

1

誤字を修正

2021/01/18 05:53

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -180,7 +180,7 @@
180
180
 
181
181
  ODBCアドミニストレータ側の設定見直し。
182
182
 
183
- ソースコード中のSQLDirectConnect文の内容見直し
183
+ ソースコード中のSQLDriverConnect文の内容見直し
184
184
 
185
185
 
186
186