本人现在正在做毕业设计,以前不会用VC ,现在想把用VC6做的一个程序中的数据库变一下
原来用的是ACCESS,现在想把它编程SQL, 用的是ODBC
   数据库想专程sql的odbc数据源格式,可是老有表错误
   后来转换成了OLE DB那种
  请问代码都什么地方要改?
   愁死了~

解决方案 »

  1.   

    转换的时候有表不成功
    我觉得应该是 ACCESS里面有的 是  是/否的问题。现在转换的时候目标变成那种默认的了就是不知道怎么连接 
    我看原来的程序连接ACCESS时用的是
    CString CJcxSet::GetDefaultConnect()
    {
    return _T("ODBC;DSN=***");
    }CString CJcxSet::GetDefaultSQL()
    {
    return _T("[***]");
    }void CJcxSet::DoFieldExchange(CFieldExchange* pFX)
    {
      

  2.   

    只要DSN名字不变,连接的代码不需要改变
      

  3.   

    连接的代码中你把所有的表名和字段名都加上方括号[],如:
    select * from [tablename] where [tablefield]= .....
      

  4.   

    CString CJcxSet::GetDefaultConnect()
    {
    return _T("ODBC;DSN=***");
    }
    最好改为:
    CString CJcxSet::GetDefaultConnect()
    {
    return _T("ODBC;DSN=***;UID=;PWD=;"); 
    //这里设置SQL的用户名和密码,否则会每次都提示你输入这个东西的,很烦人
    }
      

  5.   

    那就是说连接的时候只把DSN变成新的SQL的数据源的名字就行了?
    可是为什么ACCESS转换成sql数据库的时候只有目标为OLEDB那种才能成功呢?
    变成ODBC数据源那种不行?
    是表的问题吗?现在运行的时候老说列名'ture"无效  未能准备语句
      

  6.   

    我感觉应该是有效性规则的问题,你看看在access中你是否配置了有效性规则!
      

  7.   

    如果可能的话,请将代码发至[email protected]
    注明原帖的url,发送完之后请发消息通知我。希望可以帮到你。