时间:2021-07-01 10:21:17 帮助过:12人阅读
void main() { EXEC SQL WHENEVER SQLERROR DO sqlerr(); EXEC SQL connect:serverid ; printf("connect ok!\r\n"); char buf[100]={0}; while(1) { memset(buf,0,sizeof(buf)); memset(psql,0,sizeof(psql)); printf("\r\n SQL:"); gets(buf); if(buf[0]==‘0‘) { break; } strcpy(psql,buf); //动态sql第一种 EXEC SQL EXECUTE IMMEDIATE :psql; EXEC SQL COMMIT; printf("SQL 语句执行成功 !\r\n"); } //提交断开连接 EXEC SQL COMMIT RELEASE; system("pause"); }
第二种动态sql EXEC SQL PREPARE 标识符 FROM ‘SQL语句‘; EXEC SQL EXECUTE 标识符 USING 宿主变量1,宿主变量2; 1.仅适用于非select语句 2.嵌入SQL语句中可以包含输入宿主变量和指示变量,其个数和类型在预编译时已知。
void main() { EXEC SQL WHENEVER SQLERROR DO sqlerr(); EXEC SQL connect:serverid ; printf("connect ok!\r\n"); while(1) { memset(name1,0,sizeof(name1)); printf("\r\n 请输入要修改的ida的ID:"); scanf("%d",&ida1); getchar(); printf("\r\n 请输入要修改的name的值:"); gets(name1); if(ida1==0) { break; } //动态sql第二种 //准备固定的sql语句 //mypresql:准备sql语句的标识符 //:a和:b :并非宿主变量,而是一个占位符 EXEC SQL PREPARE mypresql FROM ‘update t2 set name=:a where ida=:b‘; //执行动态sql EXEC SQL EXECUTE mypresql USING :name1,:ida1; EXEC SQL COMMIT; printf("SQL 语句执行成功 !\r\n"); } //提交断开连接 EXEC SQL COMMIT RELEASE; system("pause"); }
第三种动态sql 1.输入宿主变量个数固定 查询条件固定 2.输出宿主变量个数固定 返回结果固定
void main() { EXEC SQL WHENEVER SQLERROR DO sqlerr(); EXEC SQL connect:serverid ; printf("connect ok!\r\n"); while(1) { memset(name1,0,sizeof(name1)); printf("\r\n 请输入要查询的name的值:"); gets(name1); if(name1[0]==‘0‘) { break; } //动态sql第三种 //准备固定的sql语句 //mypresql:准备sql语句的标识符 //:a和:b :并非宿主变量,而是一个占位符 EXEC SQL PREPARE mypresql FROM ‘select ida,idb,name from t2 where name=:a‘; //定义游标 EXEC SQL DECLARE c CURSOR FOR mypresql; //打开游标,传入参数 EXEC SQL OPEN c USING :name1; //查询数据 EXEC SQL WHENEVER NOT FOUND DO BREAK; while(1) { exec sql fetch c into :ida2,:idb2,:name2:name2_ind; if(name2_ind==-1) { memset(name2,0,sizeof(name2)); strcpy(name2,"null"); } printf("ida=%d,idb=%d,name=%s\r\n",ida2,idb2,name2); } //关闭游标 EXEC SQL CLOSE c; } //提交断开连接 EXEC SQL COMMIT RELEASE; system("pause"); }
数据库 proc编程九
标签:connect open using nec class declare 固定 for 包含