📄 嵌入式sql.sqc
字号:
#include <stdio.h>
#include <stdlib.h>
EXEC SQL INCLUDE sqlca;
int main()
{
EXEC SQL BEGIN DECLARE SECTION;
//主变量
char sno[5];
char sname[10];
int status;
char city[10];
short cityInd;//指示变量
EXEC SQL END DECLARE SECTION;
printf("This is my Embedded SQL for C application\n");
EXEC SQL CONNECT TO 8BC1D82B889C4FF.xixi USER sa.;//连接到数据库
if (SQLCODE == 0)
{
printf("Connection to SQL Server established\n");
}
else
{
// 连接DBMS错误
printf("ERROR: Connection to SQL Server failed\n");
return (1);
}
//下面为程序的主体部分
EXEC SQL create table provider (
sno char(5) primary key,
sname char(10) not null,
status int,
city char(10)
);
EXEC SQL insert into provider values('S1','精益','20','天津');
EXEC SQL insert into provider values('S2','胜锡','10','北京');
EXEC SQL insert into provider values('S3','东方红','30','天津');
EXEC SQL insert into provider values('S4','丰泰盛','20','天津');
EXEC SQL insert into provider values('S5','为民','30','上海');
EXEC SQL insert into provider values('S6','通天','25',null);
EXEC SQL WHENEVER SQLERROR GOTO error;//错误处理
EXEC SQL WHENEVER NOT FOUND GOTO done;
EXEC SQL DECLARE providerCursor CURSOR FOR
SELECT sname, city
FROM provider;
EXEC SQL OPEN providerCursor ;
for ( ; ; ) {
/* Fetch next row of the result table */
EXEC SQL FETCH providerCursor INTO :sname,:city:cityInd;
/* display data */
printf ("Sname:%s ",sname);
if ( cityInd< 0)//通过设置指示变量,并判断指示变量的值<0来确认和输出null值
printf ("City:NULL\n");
else
printf ("City:%s\n",city);
}
error:
printf ("SQL error %d\n",sqlca->sqlcode);//若照书上写sqlca.sqlcode编译报语法错
done:
/* Close the cursor before completing*/
EXEC SQL WHENEVER SQLERROR continue;
EXEC SQL CLOSE providerCursor;
EXEC SQL COMMIT WORK RELEASE;
//断开连接
EXEC SQL DISCONNECT ALL;
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -