Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit01b5efa

Browse files
committed
Fix ODBC compile, prevent ODBCVER warning, though the version numbers go
not match.
1 parent0cbfde7 commit01b5efa

File tree

3 files changed

+99
-92
lines changed

3 files changed

+99
-92
lines changed

‎src/interfaces/odbc/info.c

Lines changed: 95 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -2255,12 +2255,15 @@ char tables_query[MAX_STATEMENT_LEN];
22552255
chartrig_deferrable[2];
22562256
chartrig_initdeferred[2];
22572257
chartrig_args[1024];
2258-
charupd_rule[MAX_NAME_LEN],del_rule[MAX_NAME_LEN];
2258+
charupd_rule[MAX_TABLE_LEN],del_rule[MAX_TABLE_LEN];
22592259
charpk_table_needed[MAX_TABLE_LEN+1];
22602260
charfk_table_needed[MAX_TABLE_LEN+1];
22612261
char*pkey_ptr,*fkey_ptr,*pk_table,*fk_table;
22622262
inti,j,k,num_keys;
2263-
SWORDtrig_nargs,upd_rule_type,del_rule_type,defer_type;
2263+
SWORDtrig_nargs,upd_rule_type=0,del_rule_type=0;
2264+
#if (ODBCVER >=0x0300)
2265+
SWORDdefer_type;
2266+
#endif
22642267
charpkey[MAX_INFO_STRING];
22652268
Int2result_cols;
22662269

@@ -2694,136 +2697,136 @@ Int2 result_cols;
26942697
returnSQL_ERROR;
26952698
}
26962699

2697-
result=SQLBindCol(htbl_stmt,5,SQL_C_CHAR,
2698-
upd_rule,sizeof(upd_rule),NULL);
2699-
if((result!=SQL_SUCCESS)&& (result!=SQL_SUCCESS_WITH_INFO)) {
2700-
stmt->errormsg=tbl_stmt->errormsg;
2700+
result=SQLBindCol(htbl_stmt,5,SQL_C_CHAR,
2701+
upd_rule,sizeof(upd_rule),NULL);
2702+
if((result!=SQL_SUCCESS)&& (result!=SQL_SUCCESS_WITH_INFO)) {
2703+
stmt->errormsg=tbl_stmt->errormsg;
27012704
stmt->errornumber=tbl_stmt->errornumber;
27022705
SC_log_error(func,"",stmt);
27032706
SQLFreeStmt(htbl_stmt,SQL_DROP);
27042707
returnSQL_ERROR;
27052708
}
27062709

2707-
result=SQLBindCol(htbl_stmt,6,SQL_C_CHAR,
2708-
del_rule,sizeof(del_rule),NULL);
2709-
if((result!=SQL_SUCCESS)&& (result!=SQL_SUCCESS_WITH_INFO)) {
2710-
stmt->errormsg=tbl_stmt->errormsg;
2711-
stmt->errornumber=tbl_stmt->errornumber;
2710+
result=SQLBindCol(htbl_stmt,6,SQL_C_CHAR,
2711+
del_rule,sizeof(del_rule),NULL);
2712+
if((result!=SQL_SUCCESS)&& (result!=SQL_SUCCESS_WITH_INFO)) {
2713+
stmt->errormsg=tbl_stmt->errormsg;
2714+
stmt->errornumber=tbl_stmt->errornumber;
27122715
SC_log_error(func,"",stmt);
2713-
SQLFreeStmt(htbl_stmt,SQL_DROP);
2716+
SQLFreeStmt(htbl_stmt,SQL_DROP);
27142717
returnSQL_ERROR;
27152718
}
27162719

2717-
result=SQLFetch(htbl_stmt);
2718-
if (result==SQL_NO_DATA_FOUND)
2719-
returnSQL_SUCCESS;
2720+
result=SQLFetch(htbl_stmt);
2721+
if (result==SQL_NO_DATA_FOUND)
2722+
returnSQL_SUCCESS;
27202723

2721-
if(result!=SQL_SUCCESS) {
2722-
stmt->errormsg=SC_create_errormsg(htbl_stmt);
2723-
stmt->errornumber=tbl_stmt->errornumber;
2724+
if(result!=SQL_SUCCESS) {
2725+
stmt->errormsg=SC_create_errormsg(htbl_stmt);
2726+
stmt->errornumber=tbl_stmt->errornumber;
27242727
SC_log_error(func,"",stmt);
2725-
SQLFreeStmt(htbl_stmt,SQL_DROP);
2728+
SQLFreeStmt(htbl_stmt,SQL_DROP);
27262729
returnSQL_ERROR;
27272730
}
27282731

27292732
while (result==SQL_SUCCESS) {
27302733

27312734
/*Calculate the number of key parts */
2732-
num_keys= (trig_nargs-4) /2;;
2735+
num_keys= (trig_nargs-4) /2;;
27332736

27342737
/*Handle action (i.e., 'cascade', 'restrict', 'setnull') */
2735-
if (!strcmp(upd_rule,"RI_FKey_cascade_upd")) {
2736-
upd_rule_type=SQL_CASCADE;
2737-
}elseif (!strcmp(upd_rule,"RI_FKey_noaction_upd")) {
2738-
upd_rule_type=SQL_NO_ACTION;
2739-
}elseif (!strcmp(upd_rule,"RI_FKey_restrict_upd")) {
2740-
upd_rule_type=SQL_NO_ACTION;
2741-
}elseif (!strcmp(upd_rule,"RI_FKey_setdefault_upd")) {
2742-
upd_rule_type=SQL_SET_DEFAULT;
2743-
}elseif (!strcmp(upd_rule,"RI_FKey_setnull_upd")) {
2744-
upd_rule_type=SQL_SET_NULL;
2745-
}
2746-
2747-
if (!strcmp(upd_rule,"RI_FKey_cascade_del")) {
2748-
del_rule_type=SQL_CASCADE;
2749-
}elseif (!strcmp(upd_rule,"RI_FKey_noaction_del")) {
2750-
del_rule_type=SQL_NO_ACTION;
2751-
}elseif (!strcmp(upd_rule,"RI_FKey_restrict_del")) {
2752-
del_rule_type=SQL_NO_ACTION;
2753-
}elseif (!strcmp(upd_rule,"RI_FKey_setdefault_del")) {
2754-
del_rule_type=SQL_SET_DEFAULT;
2755-
}elseif (!strcmp(upd_rule,"RI_FKey_setnull_del")) {
2756-
del_rule_type=SQL_SET_NULL;
2757-
}
2758-
2759-
#if (ODBCVER >=0x0300)
2760-
/* Set deferrability type */
2761-
if (!strcmp(trig_initdeferred,"y")) {
2762-
defer_type=SQL_INITIALLY_DEFERRED;
2763-
}elseif (!strcmp(trig_deferrable,"y")) {
2764-
defer_type=SQL_INITIALLY_IMMEDIATE;
2765-
}else {
2766-
defer_type=SQL_NOT_DEFERRABLE;
2767-
}
2768-
#endif/* ODBCVER >= 0x0300 */
2769-
2770-
mylog("Foreign Key Case#1: trig_nargs = %d, num_keys = %d\n",trig_nargs,num_keys);
2771-
2772-
/*Get to first primary key */
2773-
pkey_ptr=trig_args;
2774-
for (i=0;i<5;i++)
2775-
pkey_ptr+=strlen(pkey_ptr)+1;
2776-
2777-
2778-
/*Get to first foreign table */
2779-
fk_table=trig_args;
2780-
fk_table+=strlen(fk_table)+1;
2781-
2782-
/* Get to first foreign key */
2783-
fkey_ptr=trig_args;
2784-
for (k=0;k<4;k++)
2785-
fkey_ptr+=strlen(fkey_ptr)+1;
2786-
2787-
for (k=0;k<num_keys;k++) {
2788-
2789-
mylog("pkey_ptr = '%s', fk_table = '%s', fkey_ptr = '%s'\n",pkey_ptr,fk_table,fkey_ptr);
2738+
if (!strcmp(upd_rule,"RI_FKey_cascade_upd")) {
2739+
upd_rule_type=SQL_CASCADE;
2740+
}elseif (!strcmp(upd_rule,"RI_FKey_noaction_upd")) {
2741+
upd_rule_type=SQL_NO_ACTION;
2742+
}elseif (!strcmp(upd_rule,"RI_FKey_restrict_upd")) {
2743+
upd_rule_type=SQL_NO_ACTION;
2744+
}elseif (!strcmp(upd_rule,"RI_FKey_setdefault_upd")) {
2745+
upd_rule_type=SQL_SET_DEFAULT;
2746+
}elseif (!strcmp(upd_rule,"RI_FKey_setnull_upd")) {
2747+
upd_rule_type=SQL_SET_NULL;
2748+
}
2749+
2750+
if (!strcmp(upd_rule,"RI_FKey_cascade_del")) {
2751+
del_rule_type=SQL_CASCADE;
2752+
}elseif (!strcmp(upd_rule,"RI_FKey_noaction_del")) {
2753+
del_rule_type=SQL_NO_ACTION;
2754+
}elseif (!strcmp(upd_rule,"RI_FKey_restrict_del")) {
2755+
del_rule_type=SQL_NO_ACTION;
2756+
}elseif (!strcmp(upd_rule,"RI_FKey_setdefault_del")) {
2757+
del_rule_type=SQL_SET_DEFAULT;
2758+
}elseif (!strcmp(upd_rule,"RI_FKey_setnull_del")) {
2759+
del_rule_type=SQL_SET_NULL;
2760+
}
2761+
2762+
#if (ODBCVER >=0x0300)
2763+
/* Set deferrability type */
2764+
if (!strcmp(trig_initdeferred,"y")) {
2765+
defer_type=SQL_INITIALLY_DEFERRED;
2766+
}elseif (!strcmp(trig_deferrable,"y")) {
2767+
defer_type=SQL_INITIALLY_IMMEDIATE;
2768+
}else {
2769+
defer_type=SQL_NOT_DEFERRABLE;
2770+
}
2771+
#endif/* ODBCVER >= 0x0300 */
2772+
2773+
mylog("Foreign Key Case#1: trig_nargs = %d, num_keys = %d\n",trig_nargs,num_keys);
2774+
2775+
/*Get to first primary key */
2776+
pkey_ptr=trig_args;
2777+
for (i=0;i<5;i++)
2778+
pkey_ptr+=strlen(pkey_ptr)+1;
2779+
2780+
2781+
/*Get to first foreign table */
2782+
fk_table=trig_args;
2783+
fk_table+=strlen(fk_table)+1;
2784+
2785+
/* Get to first foreign key */
2786+
fkey_ptr=trig_args;
2787+
for (k=0;k<4;k++)
2788+
fkey_ptr+=strlen(fkey_ptr)+1;
2789+
2790+
for (k=0;k<num_keys;k++) {
2791+
2792+
mylog("pkey_ptr = '%s', fk_table = '%s', fkey_ptr = '%s'\n",pkey_ptr,fk_table,fkey_ptr);
27902793

27912794
row= (TupleNode*)malloc(sizeof(TupleNode)+ (result_cols-1)*sizeof(TupleField));
27922795

2793-
mylog("pk_table_needed = '%s', pkey_ptr = '%s'\n",pk_table_needed,pkey_ptr);
2796+
mylog("pk_table_needed = '%s', pkey_ptr = '%s'\n",pk_table_needed,pkey_ptr);
27942797
set_tuplefield_null(&row->tuple[0]);
27952798
set_tuplefield_string(&row->tuple[1],"");
2796-
set_tuplefield_string(&row->tuple[2],pk_table_needed);
2797-
set_tuplefield_string(&row->tuple[3],pkey_ptr);
2799+
set_tuplefield_string(&row->tuple[2],pk_table_needed);
2800+
set_tuplefield_string(&row->tuple[3],pkey_ptr);
27982801

2799-
mylog("fk_table = '%s', fkey_ptr = '%s'\n",fk_table,fkey_ptr);
2802+
mylog("fk_table = '%s', fkey_ptr = '%s'\n",fk_table,fkey_ptr);
28002803
set_tuplefield_null(&row->tuple[4]);
28012804
set_tuplefield_string(&row->tuple[5],"");
28022805
set_tuplefield_string(&row->tuple[6],fk_table);
2803-
set_tuplefield_string(&row->tuple[7],fkey_ptr);
2806+
set_tuplefield_string(&row->tuple[7],fkey_ptr);
28042807

2805-
set_tuplefield_int2(&row->tuple[8], (Int2) (k+1));
2808+
set_tuplefield_int2(&row->tuple[8], (Int2) (k+1));
28062809

2807-
mylog("upd_rule = %d, del_rule= %d",upd_rule_type,del_rule_type);
2808-
set_nullfield_int2(&row->tuple[9], (Int2)upd_rule_type);
2809-
set_nullfield_int2(&row->tuple[10], (Int2)del_rule_type);
2810+
mylog("upd_rule = %d, del_rule= %d",upd_rule_type,del_rule_type);
2811+
set_nullfield_int2(&row->tuple[9], (Int2)upd_rule_type);
2812+
set_nullfield_int2(&row->tuple[10], (Int2)del_rule_type);
28102813

28112814
set_tuplefield_null(&row->tuple[11]);
28122815
set_tuplefield_null(&row->tuple[12]);
28132816

2814-
set_tuplefield_string(&row->tuple[13],trig_args);
2817+
set_tuplefield_string(&row->tuple[13],trig_args);
28152818

2816-
#if (ODBCVER >=0x0300)
2817-
mylog("defer_type = '%s', defer_type);
2818-
set_tuplefield_int2(&row->tuple[14],defer_type);
2819-
#endif/* ODBCVER >= 0x0300 */
2819+
#if (ODBCVER >=0x0300)
2820+
mylog("defer_type = '%s'",defer_type);
2821+
set_tuplefield_int2(&row->tuple[14],defer_type);
2822+
#endif/* ODBCVER >= 0x0300 */
28202823

28212824
QR_add_tuple(stmt->result,row);
28222825

28232826
/*next primary/foreign key */
2824-
for (j=0;j<2;j++) {
2825-
pkey_ptr+=strlen(pkey_ptr)+1;
2826-
fkey_ptr+=strlen(fkey_ptr)+1;
2827+
for (j=0;j<2;j++) {
2828+
pkey_ptr+=strlen(pkey_ptr)+1;
2829+
fkey_ptr+=strlen(fkey_ptr)+1;
28272830
}
28282831
}
28292832

‎src/interfaces/odbc/isql.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,9 @@ typedef signed shortRETCODE;
2424
# defineSQL_APIEXPORT CALLBACK
2525
# endif
2626

27+
#ifndefODBCVER
2728
# defineODBCVER0x0200
29+
#endif
2830

2931
# defineSQL_MAX_MESSAGE_LENGTH512
3032
# defineSQL_MAX_DSN_LENGTH32

‎src/interfaces/odbc/psqlodbc.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,9 @@ typedef double SDOUBLE;
3434
typedefUInt4Oid;
3535

3636
/* Driver stuff */
37+
#ifndefODBCVER
3738
#defineODBCVER0x0250
39+
#endif
3840
#defineDRIVER_ODBC_VER"02.50"
3941

4042
#defineDRIVERNAME "PostgreSQL ODBC"

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp