|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
从理论上讲,完全可以为数据表里的每个字段分别建一个索引,但MySQL把同一个数据表里的索引总数限制为16个。嵌进SQL
为了更好的了解嵌进SQL,本节使用一个详细例子来讲明。嵌进SQL同意程序毗连数据库而且包含SQL代码到程序中,如许在程序中就能够对数据库举行利用、操纵和处置数据等等。以下是用C言语编写的利用嵌进SQL的例程,它将打印一个呈报;这个程序必需在一般的编译之前先预编译SQL语句。嵌进SQL关于分歧体系是纷歧样的,以是在分歧的体系中对以下的程序稍作修正,出格是变量的声明和历程纪录等。在嵌进SQL时,思索收集、数据库办理体系、操纵体系是相称主要的。
以下是具体的代码:
#include<stdio.h>
/*以下这部分是声明主机变量,它将利用于程序中*/
EXECSQLBEGINDECLARESECTION;
intBuyerID;
charFirstName[100],LastName[100],Item[100];
EXECSQLENDDECLARESECTION;
/*以下包含SQLCA变量,它能够用来举行毛病反省*/
EXECSQLINCLUDESQLCA;
main(){
/*以下毗连数据库*/
EXECSQLCONNECTUserID/Password;
/*以下是毗连数据库并反省是不是有毛病发生T*/if(sqlca.sqlcode){
printf(Printer,"Errorconnectingtodatabaseserver.
");
exit();
}
printf("Connectedtodatabaseserver.
");
/*上面声明一个"Cursor"。它将在查询了局多于一行的时分利用*/
EXECSQLDECLAREItemCursorCURSORFOR
SELECTITEM,BUYERID
FROMANTIQUES
ORDERBYITEM;
EXECSQLOPENItemCursor;
/*你能够在这里还能够到场别的一些毛病反省的内容,这里就省略了*/
/*当这个CURSOR没无数据,sqlcode将被发生以同意我们加入轮回。这里注重,为了复杂起见,我们使程序碰到毛病的时分就加入任何的sqlcode。*/
EXECSQLFETCHItemCursorINTO:Item,:BuyerID;
while(!sqlca.sqlcode){
EXECSQLUPDATEANTIQUES
SETPRICE=PRICE+5
WHEREITEM=:ItemANDBUYERID=:BuyerID;
EXECSQLSELECTOWNERFIRSTNAME,OWNERLASTNAME
INTO:FirstName,:LastName
FROMANTIQUEOWNERS
WHEREBUYERID=:BuyerID;
printf("%25s%25s%25s",FirstName,LastName,Item);
EXECSQLFETCHItemCursorINTO:Item,:BuyerID;
}
/*封闭CURSOR,提交变更并加入程序。*/
EXECSQLCLOSEDataCursor;
EXECSQLCOMMITRELEASE;
exit();
}
CSV逻辑上由逗号分割数据的存储引擎 |
|