高分求C连接数据库的例子

forest 2002-02-11 02:28:11
我需要用C语言连接SQL SERVER 7,只需要做查询就可以了,哪位有这方面的文章或例子,或者提个建议也行。先谢谢了!
...全文
36 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
forest 2002-03-13
  • 打赏
  • 举报
回复
哪位兄弟有例程请发给我
forest 2002-03-12
  • 打赏
  • 举报
回复
我的email:liulin99@sina.com.cn
请尽快发给我。
谢谢!
hwf962709 2002-03-12
  • 打赏
  • 举报
回复
email来了
hwf962709@21cn.com
mfkzj 2002-03-11
  • 打赏
  • 举报
回复
我有C连SQL的原码 OLEDB的不知是否感兴趣
给我你的MAIL
strip 2002-03-11
  • 打赏
  • 举报
回复
可以用ado那方便多了

#define _WIN32_DCOM

#pragma warning(push)
#pragma warning(disable:4146)
#import "c:\program files\common files\system\ado\MSADO15.DLL" no_namespace rename("EOF", "EndOfFile")
#pragma warning(pop)


int main(int argc, char* argv[])
{
_ConnectionPtr m_pConn;
_RecordsetPtr m_pRs;
CoInitializeEx(NULL, COINIT_MULTITHREADED);
_bstr_t bstrConnStr = "Provider=SQLOLEDB.1;Persist Security Info=False;"
"User ID=sa;Initial Catalog=pubs;Data Source=BEIBEI";
try{
m_pConn.CreateInstance( __uuidof(Connection) );
m_pRs.CreateInstance( __uuidof(Recordset) );
m_pConn->Open( bstrConnStr, "sa", "csdn", adConnectUnspecified );
m_pRs->Open( "select * from titles", m_pConn.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText);
m_pRs->MoveFirst();
long lColumn = m_pRs->Fields->Count;
for( long i=0; i<lColumn; i++ )
{
printf("%-12s", (char*)m_pRs->Fields->Item[i]->Name );
}

while( ! m_pRs->EndOfFile )
{
printf("\n");
for( long i=0; i<lColumn; i++ )
{
_variant_t vValue = m_pRs->Fields->Item[i]->Value;
if( vValue.vt == VT_NULL )
{
vValue = L"(empty)";
}
vValue.ChangeType( VT_BSTR );
printf("%-12S", vValue.bstrVal );
}
m_pRs->MoveNext();
}

m_pRs->Close();
m_pConn->Close();
}catch( _com_error e )
{
printf( "\n%s Error: %ld\r\n"
"%s\r\n"
"%s\r\n",
(char*)e.Source(),
e.Error(),
(char*)e.Description(),
(char*)e.ErrorMessage() );


}
CoUninitialize();
return 0;
}
火鸟33 2002-03-07
  • 打赏
  • 举报
回复
sql server 2000的example 有例子,各种类型都有
zady 2002-03-07
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <string.h>
#include <windows.h>
#include <sql.h>
#include <sqlext.h>
#include <odbcss.h>

#define MAXBUFLEN 255

SQLHENV henv = SQL_NULL_HENV;
SQLHDBC hdbc1 = SQL_NULL_HDBC;
SQLHSTMT hstmt1 = SQL_NULL_HSTMT;

int main()
{
RETCODE retcode;
// SQLBindCol variables
SQLCHAR szName[MAXNAME+1];
SQLINTEGER cbName;

// Allocate the ODBC Environment and save handle.
retcode = SQLAllocHandle (SQL_HANDLE_ENV, NULL, &henv);
// Notify ODBC that this is an ODBC 3.0 application.
retcode = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION,
(SQLPOINTER) SQL_OV_ODBC3, SQL_IS_INTEGER);
// Allocate an ODBC connection and connect.
retcode = SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc1);
retcode = SQLConnect(hdbc1,
"MyDSN", SQL_NTS, "sa", SQL_NTS,
"MyPassWord", SQL_NTS);

// Allocate a statement handle.
retcode = SQLAllocHandle(SQL_HANDLE_STMT, hdbc1, &hstmt1);
// Prepare and execute an SQL statement on the statement handle.
// Uses a default result set because no cursor attributes are set.
retcode = SQLPrepare(hstmt1,
"SELECT au_lname from authors", SQL_NTS);
retcode = SQLExecute(hstmt1);
// Simplified result set processing. Bind one column and
// then fetch until SQL_NO_DATA.
retcode = SQLBindCol(hstmt1, 1, SQL_C_CHAR,
szName, MAXNAME, &cbName);
while ( ( retcode = SQLFetch(hstmt1) ) != SQL_NO_DATA )
printf("Name = %s\n", szName);

/* Clean up. */
SQLFreeHandle(SQL_HANDLE_STMT, hstmt1);
SQLDisconnect(hdbc1);
SQLFreeHandle(SQL_HANDLE_DBC, hdbc1);
SQLFreeHandle(SQL_HANDLE_ENV, henv);
return(0);
}

摘自MSDN
How to prepare and execute a statement (ODBC)
forest 2002-03-07
  • 打赏
  • 举报
回复
用c++也可以,但是不能用MFC
forest 2002-03-06
  • 打赏
  • 举报
回复
哪位仁兄帮我找个例子啊
step_by_step 2002-02-13
  • 打赏
  • 举报
回复
odbc
forest 2002-02-12
  • 打赏
  • 举报
回复
我要用C实现的,不要用MFC框架
捕鲸叉 2002-02-12
  • 打赏
  • 举报
回复
gzup
puwei76 2002-02-11
  • 打赏
  • 举报
回复
MSDN
freetalk 2002-02-11
  • 打赏
  • 举报
回复
msdn有例子,用ado很简单的

4,012

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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