#include<windows.h>
#include "sqlext.h"
#include "sql.h"
#include "sqltypes.h"
#include<stdio.h>
#include<string.h>
int main()
{
RETCODE error;
HENV env; /* environment */
HDBC conn; /* database connection */
SQLAllocEnv(&env);
SQLAllocConnect(env, &conn);
SQLConnectA(conn, (SQLCHAR *)"KingbaseES 6", SQL_NTS, (SQLCHAR *)"SYSTEM", SQL_NTS, (SQLCHAR *)"MANAGER", SQL_NTS);
char sno[8],sname[20];
int lenOut1, lenOut2;
int choice;
char * vdept="'计算机'";
char * vsno="'071244'";
char * vname="'胡培培'";
HSTMT stmt;//上面是定义变量
SQLAllocStmt(conn, &stmt);//获得会话对象
printf("请选择需要的操作:1--增加 2--删除 3--修改 4--查询 5--退出\n");
scanf("%d",&choice);
char * sqlinsert = "insert into STUDENT values('071254','ddd','男','1988-06-22','计算机','07410')";
char * sqldelete = "delete from STUDENT where sno='071234'";
char * sqlupdate = "update STUDENT set sname='David'where sno='071234'";
while(choice!=5)
{
switch(choice)
{
case 1:
char buffer1[1024];
wsprintf(buffer1,"insert into STUDENT values(%s,%s,'男','1988-06-22',%s,'07410')",(LPSTR)vsno,(LPSTR)vname,(LPSTR)vdept);
printf("%s\n",buffer1);
error = SQLExecDirectA(stmt, (SQLCHAR *)buffer1, SQL_NTS);
printf("插入成功\n");
break;
case 2:
error = SQLExecDirectA(stmt, (SQLCHAR *)sqldelete, SQL_NTS);
if (error == SQL_SUCCESS)
printf("删除成功\n");
break;
case 3:
error = SQLExecDirectA(stmt, (SQLCHAR *)sqlupdate, SQL_NTS);
if (error == SQL_SUCCESS)
printf("修改成功\n");
break;
case 4:
char buffer[1024];
wsprintf(buffer,"select sno,sname from STUDENT where dept= %s",(LPSTR)vdept);
printf("%s\n",buffer);
error = SQLExecDirectA(stmt, (SQLCHAR *)buffer, SQL_NTS);//执行sql查询,返回代码表示成功与否
if (error == SQL_SUCCESS)
{
printf("------------\n");
SQLBindCol(stmt, 1, SQL_C_CHAR, sno , 8, (SQLINTEGER *)&lenOut1);
SQLBindCol(stmt, 2, SQL_C_CHAR, sname, 20, (SQLINTEGER *)&lenOut2);
while (SQLFetch(stmt) == SQL_SUCCESS)
{
printf ("%s %s\n", sno,sname);
}
}
break;
}
printf("请选择需要的操作:1--增加 2--删除 3--修改 4--查询 5--退出\n");
scanf("%d",&choice);
}
SQLFreeStmt(stmt, SQL_DROP);//释放会话对象
SQLDisconnect(conn);
SQLFreeConnect(conn);
SQLFreeEnv(env);
return 0;
}