Created
December 20, 2015 15:48
-
-
Save bucketzxm/e86c8475fc33982b8b7a to your computer and use it in GitHub Desktop.
some example for postgresql embeded-sql
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdio.h> | |
#include <string.h> | |
#include <stdlib.h> | |
#define True 1 | |
void db_connect() | |
{ | |
EXEC SQL CONNECT TO db_test@localhost:5432 USER postgres USING password; | |
} | |
void db_test() | |
{ | |
EXEC SQL BEGIN DECLARE SECTION; | |
char dbname[1024]; | |
EXEC SQL END DECLARE SECTION; | |
EXEC SQL SELECT current_database() INTO :dbname; | |
printf("current_database = %s \n", dbname); | |
} | |
void db_disconnect() | |
{ | |
EXEC SQL DISCONNECT ALL; | |
printf("Disconnect Database\n"); | |
} | |
void ChangeDNO() | |
{ | |
EXEC SQL BEGIN DECLARE SECTION; | |
int maxage = 0; | |
char xh[21], xm[21], sex[4]; | |
char newxh[21]; | |
EXEC SQL END DECLARE SECTION; | |
printf("Input Maxage: "); | |
scanf("%d", &maxage); | |
getchar(); | |
// EXEC SQL SELECT xh,xm INTO :xh, :xm FROM s WHERE xb='男'; | |
EXEC SQL DECLARE ex CURSOR FOR | |
SELECT xh, xm, xb FROM s | |
WHERE xb = '男' FOR UPDATE OF xh; | |
EXEC SQL OPEN ex; | |
while(True) | |
{ | |
EXEC SQL FETCH FROM ex INTO :xh,:xm,:sex; | |
//if (SQLCA.SQLSTATE == '02000') | |
// break; | |
//if (SQLCA.SQLSTATE!='00000') | |
// break; | |
char yn = 'N'; | |
printf("xh: %s, xm: %s, sex: %s\n", xh, xm, sex); | |
printf("UPDATE 学号?\n"); | |
yn = getchar(); | |
if (yn =='y' || yn == 'Y') | |
{ | |
printf("Input NEW xh: "); | |
scanf("%s", newxh); | |
getchar(); | |
EXEC SQL UPDATE s SET xh=:newxh WHERE CURRENT OF ex; | |
// EXEC SQL COMMIT; | |
}else{ | |
break; | |
} | |
// EXEC SQL FETCH NEXT FROM ex INTO :xh,:xm,:sex; | |
} | |
EXEC SQL COMMIT; | |
} | |
int main(){ | |
db_connect(); | |
db_test(); | |
ChangeDNO(); | |
db_disconnect(); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment