c++和数据库

legend6527 2005-07-09 03:15:33

1、请问怎么样在c++程序里内嵌SQL语句.
2、有没有一些现成的函数调用(API函数)
3、能不能给一些这方面的示例程序.
谢谢!!
...全文
369 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
surfer2888 2005-07-11
  • 打赏
  • 举报
回复
ADO阿。ADO阿。ADO阿。ADO阿。ADO阿。ADO阿。ADO阿。ADO阿。ADO阿。ADO阿。ADO阿。ADO阿。
HIZHX 2005-07-10
  • 打赏
  • 举报
回复
CDatabase
CRecordset
这些都是用于对数据库进行操作的类.
scalps 2005-07-10
  • 打赏
  • 举报
回复
odbc都是被ms遗弃的东西了。
速度也不敢恭维
wvins 2005-07-10
  • 打赏
  • 举报
回复
忘了说了

unsigned char datasource[]="wjy";

datasource是dsn名称。在odbc管理器内建立。名字自己改
wvins 2005-07-10
  • 打赏
  • 举报
回复
#include<windows.h>
#include<sql.h>
#include<sqlext.h>
#include<string.h>
//#include<sedlib.h>
void main()
{HENV henv;
HDBC hdbc;
HSTMT hstmt;
unsigned char datasource[]="wjy";
unsigned char search[]="select xm from stu where xh=0";
RETCODE retcode;
SQLAllocEnv(&henv);
SQLAllocConnect(henv,&hdbc);
SQLConnect(hdbc,datasource,SQL_NTS,NULL,0,NULL,0);
SQLAllocStmt(hdbc,&hstmt);
retcode=SQLExecDirect(hstmt,search,SQL_NTS);

SQLDisconnect(hdbc);
SQLFreeStmt(hstmt,SQL_DROP);
SQLFreeConnect(hdbc);
SQLFreeEnv(henv);
}

具体过程,比较繁杂,可以找本数据库的书看看。
关于odbc api的。
我这边测试通过了,具体怎么使用你再看看了。
wvins 2005-07-10
  • 打赏
  • 举报
回复
这个问题我有过研究?
不过嵌入式sql我还是不会弄。
和各dbms相关,每个dbms都有一个预处理器,可以把含嵌入式sql的c程序翻译,即把sql翻成过程性语言。

非嵌入式sql我倒是有例子。
xfxf521 2005-07-09
  • 打赏
  • 举报
回复
要写sql关键在于你用的编译器了
jixingzhong 2005-07-09
  • 打赏
  • 举报
回复
一个API的例子



至于SQL的 ,真是不好说!!


无语~~~~~~~~~~~~~~~~~
jixingzhong 2005-07-09
  • 打赏
  • 举报
回复
#include <windows.h>

//窗口函数说明
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);

//初始化窗口类
//WinMain函数说明
int WINAPI WinMain( HINSTANCE hInstance,HINSTANCE hPrevInst, LPSTR lpszCmdLine, int nCmdShow)
{
HWND hwnd ;
MSG Msg ;
WNDCLASS wndclass ;
char lpszClassName[] = "窗口"; //窗口类名
char lpszTitle[]= "My_Windows"; //窗口标题名

//窗口类的定义
wndclass.style = 0; //窗口类型为缺省类型
wndclass.lpfnWndProc = WndProc ; //窗口处理函数为WndProc
wndclass.cbClsExtra = 0 ; //窗口类无扩展
wndclass.cbWndExtra = 0 ; //窗口实例无扩展
wndclass.hInstance = hInstance ; //当前实例句柄
wndclass.hIcon = LoadIcon( NULL, IDI_APPLICATION) ;
//窗口的最小化图标为缺省图标
wndclass.hCursor = LoadCursor( NULL, IDC_ARROW) ;
//窗口采用箭头光标
wndclass.hbrBackground = GetStockObject( WHITE_BRUSH) ;
//窗口背景为白色
wndclass.lpszMenuName = NULL ; //窗口中无菜单
wndclass.lpszClassName = lpszClassName ; //窗口类名为"窗口示例"

//窗口类注册
if( !RegisterClass( &wndclass)) //如果注册失败则发出警告声音
{
MessageBeep(0) ;
return FALSE ;
}

//创建窗口
hwnd=CreateWindow(lpszClassName, //窗口类名
lpszTitle, //窗口实例的标题名
WS_OVERLAPPEDWINDOW, //窗口的风格
CW_USEDEFAULT,
CW_USEDEFAULT, //窗口左上角坐标为缺省值
CW_USEDEFAULT,
CW_USEDEFAULT,, //窗口的高和宽为缺省值
NULL, //此窗口无父窗口
NULL, //此窗口无主菜单
hInstance, //创建此窗口的应用程序的当前句柄
NULL) ; //不使用该值

//显示窗口
ShowWindow( hwnd, nCmdShow) ;
//绘制用户区
UpdateWindow(hwnd);
//消息循环
while(GetMessage(&Msg, NULL, 0, 0))
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}

return Msg.wParam; //消息循环结束即程序终止时将信息返回系统
}

//窗口函数
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam, LPARAM lParam)
{
switch(message)
{
case WM_DESTROY:
PostQuitMessage(0); //调用PostQuitMessage发出WM_QUIT消息

default: //默认时采用系统消息默认处理函数
return DefWindowProc(hwnd,message,wParam,lParam);
}
return 0;
}
scalps 2005-07-09
  • 打赏
  • 举报
回复
在程序中内嵌SQL是有标准的,可以参考你使用数据库的相关文档。
一般都会提供更高级别的封装来操作数据库。
看具体的数据库帮助文件,里面一般是有这方面的示例的。

其实可以使用一些中间价(比如SQLAPI++)来避开各种数据库不同,使用统一接口来操作数据库,这样可以提高移植性,也相对简单。

64,646

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧