正文

嵌入式 SQL C语言编程2007-03-20 21:58:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/lingdlz/24152.html

分享到:

上学期我们学了数据库,课程设计我是用ESQL/C写的,因为当时只学了C语言其它的语言都没入门,所以只好用C写了,我写的是模拟QQ管理好友的程序由于那时候刚好要期末考试,没时间有很多功能就没写了,现在要学C++/STL/MFC又要软考,四级还得过,没时间做了,放到网上大家如果谁想了解这方面的有关知识可以下载,那时我也是摸黑搞的,网上这方面的资料很少,我就靠SQL2000的手册。屋漏偏逢连夜雨,手册上全是英文,傻了我半天,幸好有金山词霸。有时候一个小错误我得发几个小时去摸索,现在可能也不大记得了,功夫不负有心了,最后终于出了个半成品,呵呵 …… 因为文件大了我只好分开了几个压缩文件。我开了个Q群(28011342)大家可以去下载完整的资料 (数据库课程设计.rar) 环境架设下载      源代码下载       设计文档下载 部分代码: ///////////////////////////////////////////////////////////////////////////////////  文 件: esql.sqc//  嵌入式 SQL/C 程序 ,QQ 模拟器,数据库操作源码文件////  函  数: main(),CheckMessage(),DatabaseError()// // The SQLERRD3 array indicates the number of rows affected//  作  者: Deng Lanzhong //  联  系:Email: lingdlz@163.com  QQ: 403324669   //  时  间: 2006--12--30///////////////////////////////////////////////////////////////////////////////// #define  DBNTWIN32#include <stdio.h>#include <string.h>#include <stdlib.h>#include <conio.h>#include <time.h>#include <ctype.h>#include <direct.h>#include <io.h> // 文件包含,和一般的程序有点区别,我调试很久才解决 #include "qq.h"#include "login.c"#include "log.c"#include "download.c"#include "command.c"#include "superm.c"#include "listdata.c"#include "use.c"#include "friend.c"#include "group.c" /***     函  数:DatabaseError()**       数据库操作出错时,调用该函数打印出错信息  **     参  数:(无)**     返回值:(无) */void  DatabaseError(void){ char msg[150];  printf("数据库操作出错:\n");     printf(" SQL错误代号: %li\n", SQLCODE);     printf(" SQL错误信息: %Fs\n", SQLERRMC); sprintf(msg,"数据库操作出错: %Fs",SQLERRMC); if(SQLCODE < 0)    // 所有的数据库错误写入日志  WriteLog(msg);    } void CheckMessage(void){} /***     函  数:main()**       QQ 模拟器,数据库操作程序 的主函数,调用其它各模块**     参  数:(无)**     返回值:(无)** */int main (void){ char  command[CMDLENGTH];  // 存储命令 struct strcmd  cmdMeter[NUMBCMD+2]; // 命令表 int  flag;  EXEC SQL SET OPTION LOGINTIME 10; // 连接数据库的超时时间设置     EXEC SQL SET OPTION QUERYTIME 100; // 查询超时时间 atexit(DisConnect);    printf("-------------------------------------------------------\n"); printf("    欢迎使用嵌入式 SQL/C 程序   QQ 模拟器 个人版\n\n"); printf("    作  者: Deng Lanzhong \n"); printf("    联  系:Email: lingdlz@163.com  QQ: 403324669\n");    printf("    时  间: 2006--12--30\n"); printf("-------------------------------------------------------\n"); if(InitCmdMeter(cmdMeter)==FAILED){  // 初始化命令表  printf("%s\n","初始化命令表失败,请修复文件command.ini !");  return FAILED; } // 以命令方式操作程序,循环调用各模块 while(TRUE){  printf("Input command >");  while(!kbhit() && iRunLevel == NOTLINK)   ;   // 未连接数据库,空循环,等待命令      while(!kbhit() && iRunLevel != NOTLINK)   CheckMessage();  // 有用户登陆,查看数据库上的消息  if(TabGetsCmd(command,cmdMeter)==FAILED)   continue;  // 实现 " 三键 " 输入一个命令      if(iRunLevel >= NOTLINK){ // NOTLINK 级别能够运行的命令   if(!stricmp(command,"help"))    flag = cmdHelp();      else if(!stricmp(command,"link"))    flag = ConnectToDb();   else if(!stricmp(command,"exit")){    if(TestExit() == FAILED)     return SUCCESS;    else     flag = SUCCESS;        }   else if(!stricmp(command,"view run level"))    flag = cmdShowRunLevel();   else if(!stricmp(command,"view command"))    flag = cmdViewCmdMeter(cmdMeter);   else if(!stricmp(command,"go dos"))    flag = cmdDosCmd();   else if(!stricmp(command,"how can I do"))    flag = cmdShowCanDo(cmdMeter);  }   if(iRunLevel >= LINK){  // 至少 LINK 级别的才能运行的命令    if(!stricmp(command,"login"))    flag = Login();    else if(!stricmp(command,"view qq source"))    flag = ViewQqSource();   else if(!stricmp(command,"view group source"))    flag = ViewGroupSource();   else if(!stricmp(command,"apply qq number"))    flag = ApplyQqNumber();  }   if(iRunLevel >= USE){  // 至少 USE 级别才能运行的命令   if(!stricmp(command,"view my info"))    flag = ViewMemberInfo(iCurrentUser);   else if(!stricmp(command,"update my info"))    flag = UpdateMemberInfo(iCurrentUser);   else if(!stricmp(command,"view my friend info"))    flag = ViewMyFrdInfo();   else if(!stricmp(command,"add friend"))    flag = AddMyFriend();   else if(!stricmp(command,"delete friend"))    flag = DeleteMyFriend();   else if(!stricmp(command,"move friend"))    flag = MoveMyFriend();   else if(!stricmp(command,"change friend remark name"))    flag = ChangeMyFrdNick();   else if(!stricmp(command,"add my friend group"))    flag = AddMyFrdGrp();   else if(!stricmp(command,"delete my friend group"))    flag = DeleteMyFrdGrp();   else if(!stricmp(command,"update my friend group name"))    flag = ChangeMyFrdGrpName();   else if(!stricmp(command,"view my friend group"))    flag = ListMyFrdGrp();    else if(!stricmp(command,"create qq group"))    flag = CreateQqGroup();    else if(!stricmp(command,"viem my join group info"))    flag = ListMyJoinGrp();      }   if(iRunLevel >= MANAGE){ // 至少 MANAGE 级别才能运行的命令   if(!stricmp(command,"view all member info"))    flag = ListMemberBriefInfo();  }   if(iRunLevel >= SUPERMANAGE){ // 最高级别,一切命令皆可   if(!stricmp(command,"turn off log"))    flag = TurnOffLog();   else if(!stricmp(command,"add qq number"))    flag = AddQqNumber();   else if(!stricmp(command,"add group number"))    flag = AddGroupNumber();   else if(!stricmp(command,"create random data"))    flag = CreateRandomData();   else if(!stricmp(command,"view table"))    flag = ViewTable();   else if(!stricmp(command,"empty table"))    flag = EmptyTable();  }   if(flag == SUCCESS)   printf("命令成功执行!\n");  else   printf("命令执行失败, 请参考 help 命令 !\n"); } return SUCCESS;}

阅读(7946) | 评论(2)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册