小小的数据库疑问,请帮帮忙 当然有了!你必须先注册ODBC数据库! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不必的 自己在程序中指定数据库的名字就可以了 我用的是Access 例如 CString connect; CString sDriver = "MICROSOFT ACCESS DRIVER (*.mdb)"; CString sFile=g_AppPath sFile+= "\\data.mdb"; connect.Format("ODBC;DRIVER={%s};DSN='';DBQ=%s",sDriver,sFile); m_database.Open(NULL,false,false,connect,false); ACCESS:char sz[1000];LPSTR lpsz = sz;SQLConfigDataSource(NULL,ODBC_ADD_DSN, "Microsoft Access Driver (*.mdb)", "DSN=AAA\0" "Exclusive=0\0" "Option1=Yes\0Option2=Yes\0\0");str = _T("C:\\AAA\\Data\\AAA.mdb");wsprintf(lpsz,"%s",str);SQLWritePrivateProfileString("AAA", "DBQ", lpsz, "ODBC.INI");str = _T("C:\\AAA\\Data\\");wsprintf(lpsz,"%s",str);SQLWritePrivateProfileString("AAA", "DefaultDir", lpsz, "ODBC.INI");配置SQLServer网络数据源: strWebServer为调用者传来的服务器IP或NAME char sz[1000]; CString temp(_T("")); LPSTR lpsz = sz; WORD byteNum = 0; int nLength = 0; BOOL bFound = FALSE; BOOL bSQL = FALSE; bFound = SQLGetInstalledDrivers(lpsz,1000,&byteNum); while(bFound) { temp.Format("%s",lpsz); if(temp.IsEmpty()) break; if(temp.Find(_T("SQL Server")) != -1) bSQL = TRUE; nLength = temp.GetLength(); nLength ++; lpsz += nLength; } if(!bSQL) AfxMessageBox(_T(" 您的系统中没有安装SQL Server ODBC Driver,\n您将无法浏览历史数据!"),MB_ICONINFORMATION | MB_OK); CString configString(_T("")); char configChar[128]; //---ss zhang modified for history DB-- configString = "DSN=Autop99A_History\0"; memcpy(configChar,configString,21); configString = "DATABASE=Autop99A_History\0"; memcpy(&configChar[21],configString,26); //---ss zhang modified for history DB-- configString = "NETWORK=DBMSSOCN\0"; memcpy(&configChar[47],configString,17); configString = "DESCRIPTION=AutopWeb\0"; memcpy(&configChar[64],configString,21); configString.Format(_T("SERVER=%s\0\0"),m_strWebServer); memcpy(&configChar[85],configString,configString.GetLength()+1); configChar[85+configString.GetLength()+1] = '\0'; if(!SQLConfigDataSource(NULL,ODBC_ADD_SYS_DSN, "SQL Server",configChar)) { DWORD errorNo; WORD count; SQLInstallerError(1,&errorNo,lpsz,SQL_MAX_MESSAGE_LENGTH,&count); temp.Format(_T(" 本地数据源添加失败,您将无法浏览历史数据!\n错误原因:%s"),lpsz); AfxMessageBox(temp); } 简单问题,服务器需要定义多少个socket? 为一个按钮添加LBUTTONDOWN消息,实现按钮按下执行一段代码 100分!请考BMP的问题,如何生成256色位图, 请教高手一个关于directX跨平台的问题 请问怎么用MoveTo,LineTo,画线 CRichEditView如何实现多行显示,并有水平滚动条和垂直滚动条 怎样反编译vc生成的exe 有哪位知道如何向串口发送AT 命令? 一个进程通讯的问题! 能否给一个画坐标图的代码? 在vc中,如何能使写出来的dll小一点呢? 怎样能从dll中通过消息返回主程序一个字符串??
我用的是Access
例如
CString connect;
CString sDriver = "MICROSOFT ACCESS DRIVER (*.mdb)";
CString sFile=g_AppPath
sFile+= "\\data.mdb";
connect.Format("ODBC;DRIVER={%s};DSN='';DBQ=%s",sDriver,sFile);
m_database.Open(NULL,false,false,connect,false);
char sz[1000];
LPSTR lpsz = sz;
SQLConfigDataSource(NULL,ODBC_ADD_DSN,
"Microsoft Access Driver (*.mdb)",
"DSN=AAA\0"
"Exclusive=0\0"
"Option1=Yes\0Option2=Yes\0\0");
str = _T("C:\\AAA\\Data\\AAA.mdb");
wsprintf(lpsz,"%s",str);
SQLWritePrivateProfileString("AAA",
"DBQ", lpsz,
"ODBC.INI");
str = _T("C:\\AAA\\Data\\");
wsprintf(lpsz,"%s",str);
SQLWritePrivateProfileString("AAA",
"DefaultDir",
lpsz,
"ODBC.INI");
配置SQLServer网络数据源: strWebServer为调用者传来的服务器IP或NAME char sz[1000];
CString temp(_T("")); LPSTR lpsz = sz;
WORD byteNum = 0;
int nLength = 0;
BOOL bFound = FALSE;
BOOL bSQL = FALSE; bFound = SQLGetInstalledDrivers(lpsz,1000,&byteNum);
while(bFound)
{
temp.Format("%s",lpsz);
if(temp.IsEmpty()) break;
if(temp.Find(_T("SQL Server")) != -1) bSQL = TRUE;
nLength = temp.GetLength();
nLength ++;
lpsz += nLength;
}
if(!bSQL) AfxMessageBox(_T(" 您的系统中没有安装SQL Server ODBC Driver,\n您将无法浏览历史数据!"),MB_ICONINFORMATION | MB_OK); CString configString(_T(""));
char configChar[128];
//---ss zhang modified for history DB--
configString = "DSN=Autop99A_History\0";
memcpy(configChar,configString,21);
configString = "DATABASE=Autop99A_History\0";
memcpy(&configChar[21],configString,26);
//---ss zhang modified for history DB-- configString = "NETWORK=DBMSSOCN\0";
memcpy(&configChar[47],configString,17);
configString = "DESCRIPTION=AutopWeb\0";
memcpy(&configChar[64],configString,21);
configString.Format(_T("SERVER=%s\0\0"),m_strWebServer);
memcpy(&configChar[85],configString,configString.GetLength()+1);
configChar[85+configString.GetLength()+1] = '\0';
if(!SQLConfigDataSource(NULL,ODBC_ADD_SYS_DSN, "SQL Server",configChar))
{
DWORD errorNo;
WORD count;
SQLInstallerError(1,&errorNo,lpsz,SQL_MAX_MESSAGE_LENGTH,&count);
temp.Format(_T(" 本地数据源添加失败,您将无法浏览历史数据!\n错误原因:%s"),lpsz);
AfxMessageBox(temp);
}