VC如何根据客户输入的dbf库路径及dbf库名称来打开数据库?

snynixayyh 2007-02-14 08:45:44
在VC基于对话框编程的数据库编程中,因为需要,用一编辑框获取用户指定的数据库绝对路径及dbf库名称来,根据此输入信息来建立数据库的连接并获取数据(且用户可以根据DBF库的位置多次改变路径及DBF的名称,如何再程序中实现这个功能?
...全文
428 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
skypu 2007-02-14
  • 打赏
  • 举报
回复
以下一段程序是我写的,VC6+ADO+ACCESS2000
我做的时候尽量考虑了多的情况
你可以拿去参考一下
CString strFile;
strFile = "CVA.mdb";

CFileFind DBFind;
if ( !DBFind.FindFile(strFile) )
{
int nResponse = MessageBox("没有找到CVA.mdb!\n是否手动查找?", "定位数据库错误", MB_YESNO );
if ( IDYES == nResponse )
{
//查找数据库文件
static LPCTSTR lpszFilter = "数据库文件 (*.mdb)|*.mdb||";
CFileDialog dbDlg(TRUE, NULL, NULL, OFN_HIDEREADONLY, lpszFilter);
if ( IDOK == dbDlg.DoModal() )
{
//重新定位了文件
strFile = dbDlg.GetPathName();
//把文件复制到工作目录中,方便使用
::CopyFile(strFile, "CVA.mdb",NULL);
strFile = "CVA.mdb";
}
}
else
{
//程序启动失败
AfxMessageBox("由于未能够加载数据库文件,程序启动失败!\n请与供应商联系!");
return FALSE;
}
}

CString strDB;
strDB.Format("Provider = Microsoft.Jet.OLEDB.4.0; Data Source = %s", strFile);
然后下面做一堆什么try{ open....}catch(...){}之类的东西
chehw 2007-02-14
  • 打赏
  • 举报
回复
//** ODBC SDK API
TCHAR szConnIn[512];
TCHAR szConnOut[512];
short cbConnIn, cbConnOut;
SQLRETURN rc;
// 连接Visual Foxpro free tables
cbConnIn=wsprintf(szConnIn, TEXT("DRIVER={Microsoft Visual FoxPro Driver};SourceDB=%s;SourceType=dbf;"), szPath);

// 连接dBASE数据库
cbConnIn=wsprintf(szConnIn, TEXT("Driver={Microsoft dBASE Driver (*.dbf)};DBQ=%s; DriverID=277;), szPath);

rc=SQLDriverConnect(hdbc, NULL, (SQLTCHAR *)szConnIn, cbConnIn, (SQLTCHAR *)szConnOut, sizeof(szConnOut), &cbConnOut, SQL_DRIVER_NOPROMPT);

if(SQL_SUCCESS==rc || SQL_SUCCESS_WITH_INFO==rc)
{
...
}
ddszhan 2007-02-14
  • 打赏
  • 举报
回复
ADO, DAO都可以直接用数据库文件名。
syy64 2007-02-14
  • 打赏
  • 举报
回复
strConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +m_strDatabase;

其中:m_strDatabase 就是数据源的路径。
snynixayyh 2007-02-14
  • 打赏
  • 举报
回复
我知道如何获取路径及DBF库名字,我是问如何根据这个信息建立数据库的连接,因为数据连接一般需要建立数据源,建立动态数据源又太麻烦,而且也有一定的局限。看是否有直接按指定的数据路径及库名来打开并获取数据的方法
hertcloud 2007-02-14
  • 打赏
  • 举报
回复
根据 文本框中的路径
和 数据库文件 类型
建立 相应的 数据 链接
oyljerry 2007-02-14
  • 打赏
  • 举报
回复
获得编辑框中的路径信息,然后通过一个button点击来建立数据库连接?
wangyuee 2007-02-14
  • 打赏
  • 举报
回复
将用户输入的信息读取进来附给以下四个变量,再进行连接。
//与本地数据库建立连接
CString Local_strSQL;
char Local_ip[16];
char Local_Database[20];
char Local_Username[16];
char Local_Password[16];
//连接数据库
m_pConnection.CreateInstance(__uuidof(Connection));
Local_strSQL.Format("driver={SQL Server};Server=%s;DATABASE=%s;UID=%s;PWD=%s",Back_ip,Back_Database,Back_Username,Back_Password);
try
{
m_pConnection->ConnectionTimeout = 5;///设置超时时间为5秒
m_pConnection->Open(_bstr_t(Local_strSQL),"","",adModeUnknown);
AfxMessageBox("连接本地数据库OK!");
}
catch(_com_error e)
{
AfxMessageBox("连接本地数据库失败!");
return FALSE;
}

4,011

社区成员

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

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