标题:前辈们 能 帮帮我么 :操作数据库时出现:【Microsoft】 【ODBC驱动程序管 ...
取消只看楼主
glarm
Rank: 2
等 级:论坛游民
帖 子:43
专家分:24
注 册:2015-3-4
结帖率:60%
已结贴  问题点数:20 回复次数:4 
前辈们 能 帮帮我么 :操作数据库时出现:【Microsoft】 【ODBC驱动程序管理器】 未发现数据源名称并且未指定默认驱动程序(0)
【Microsoft】 【ODBC驱动程序管理器】 未发现数据源名称并且未指定默认驱动程序(0)
  这个 问题 我记得以前  我解决过   但是     现在忘记了         谁能帮帮我吗   我急用  谢谢!!
搜索更多相关主题的帖子: Microsoft 数据库 数据源 
2015-04-18 21:20
glarm
Rank: 2
等 级:论坛游民
帖 子:43
专家分:24
注 册:2015-3-4
得分:0 
程序代码:
#include "stdafx.h"
#include <windows.h>
#include <windowsx.h>
#include <sql.h>
#include <sqlext.h>
#include <sqltypes.h>
#include "resource.h"
#include "MainDlg.h"
#define LOGIN_TIMEOUT 30
#define MAXBUFLEN 255
#define CHECKDBSTMTERROR(hwnd,result,hstmt) if(SQL_ERROR==result){ShowDBStmtError(hwnd,hstmt);return;}

BOOL WINAPI Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    switch(uMsg)
    {
        HANDLE_MSG(hWnd, WM_INITDIALOG, Main_OnInitDialog);
        HANDLE_MSG(hWnd, WM_COMMAND, Main_OnCommand);
  HANDLE_MSG(hWnd,WM_CLOSE, Main_OnClose);
    }
    return FALSE;
}
BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam)
{
    return TRUE;
}
void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
{
    switch(id)
    {
        case IDC_OK:
   DBTest(hwnd);
        break;
        default:
  break;
    }
}
void Main_OnClose(HWND hwnd)
{
    EndDialog(hwnd, 0);
}
void ShowDBError(HWND hwnd,SQLSMALLINT type,SQLHANDLE sqlHandle)
{
    char pStatus[10], pMsg[101];
    SQLSMALLINT SQLmsglen;
    char error[200] = {0};
    SQLINTEGER SQLerr;
    long erg2 = SQLGetDiagRec(type, sqlHandle,1,
   (SQLCHAR *)pStatus,&SQLerr,(SQLCHAR *)pMsg,100,&SQLmsglen);
    wsprintf(error,"%s (%d)\n",pMsg,(int)SQLerr);
    MessageBox(hwnd,error,TEXT("数据库执行错误"),MB_ICONERROR|MB_OK);
}
void ShowDBConnError(HWND hwnd,SQLHDBC hdbc)
{
ShowDBError(hwnd,SQL_HANDLE_DBC,hdbc);
}
void ShowDBStmtError(HWND hwnd,SQLHSTMT hstmt)
{
ShowDBError(hwnd,SQL_HANDLE_STMT,hstmt);
}

void DBTest(HWND hwnd)
{
    SQLHENV henv = NULL;
    SQLHDBC hdbc = NULL;
    SQLHSTMT hstmt = NULL;
    SQLRETURN result;
    SQLCHAR ConnStrIn[MAXBUFLEN] = "DRIVER={MySQL ODBC 5.1 Driver};SERVER=127.0.0.1;UID=root;PWD=root;DATABASE=hack;CharSet=gbk;";
    SQLCHAR ConnStrOut[MAXBUFLEN];
//分配环境句柄
    result = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv);
//设置管理环境属性
    result = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0);
//分配连接句柄
    result = SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);
//设置连接属性
    result = SQLSetConnectAttr(hdbc, SQL_LOGIN_TIMEOUT, (void*)LOGIN_TIMEOUT, 0);
//连接数据库
    result = SQLDriverConnect(hdbc,NULL,
                              ConnStrIn,SQL_NTS,
                              ConnStrOut,MAXBUFLEN,
                              (SQLSMALLINT *)0,SQL_DRIVER_NOPROMPT);
    if(SQL_ERROR==result)
    {
       ShowDBConnError(hwnd,hdbc);
       return;
    }
//初始化语句句柄
    result = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt);
    //SQL_NTS telling the function the previous parameter is Null-Terminated String,
//please alculate the string length for me  
    result = SQLPrepare(hstmt,(SQLCHAR*)"insert into T_Person(FAge,FName) values(20,'kider')",SQL_NTS);
    CHECKDBSTMTERROR(hwnd,result,hstmt);
    result =SQLExecute(hstmt);
    CHECKDBSTMTERROR(hwnd,result,hstmt);
    SQLFreeStmt(hstmt,SQL_CLOSE);
    SQLDisconnect(hdbc);
    SQLFreeHandle(SQL_HANDLE_DBC,hdbc);
    SQLFreeHandle(SQL_HANDLE_ENV,henv);
MessageBox(hwnd,TEXT("执行成功"),TEXT("标题"),MB_OK);
}
2015-04-18 21:25
glarm
Rank: 2
等 级:论坛游民
帖 子:43
专家分:24
注 册:2015-3-4
得分:0 
回复 2楼 glarm
这是代码 但是   鄙人表示 不是代码 的问题   应该时什么驱动 啥的  
2015-04-18 21:26
glarm
Rank: 2
等 级:论坛游民
帖 子:43
专家分:24
注 册:2015-3-4
得分:0 
我看了下 驱动视乎有 但是
2015-04-19 08:55
glarm
Rank: 2
等 级:论坛游民
帖 子:43
专家分:24
注 册:2015-3-4
得分:0 
      
请问下前辈  这个时什么问题      我以前在 odbc里面 弄好过  但是  很久后 的现在  我尽然忘记了  能帮帮我吗
2015-04-19 14:09



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-444211-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.112825 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved