找回密码 注册 QQ登录
一站式解决方案

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
12
返回列表 发新帖
打印 上一主题 下一主题

【求助】UG .dll文件可移植性问题

[复制链接]
11
发表于 2003-5-23 12:36:14 | 只看该作者
在你的dll中添加一个登陆的对话框呀。不然就只有用当前操作系统登陆用户了
12
发表于 2003-5-28 16:23:26 | 只看该作者
在dll中添加一个登陆的对话框困难吗?你做过这样的实际例子吗?希望你最好说的详细点,谢谢!!!
13
发表于 2003-5-28 19:24:38 | 只看该作者
那就用mfc来做,做一个动态库。
14
发表于 2003-5-29 11:20:14 | 只看该作者
刚才请教了一位高手,他建议我用UDL,我也觉得这种方法可能更简单,而且也更容易实现。spline,你认为这种方法和你所说的方法哪种更简单,更容易实现,而且用户使用也觉得方便。
  
15
发表于 2003-5-29 12:10:10 | 只看该作者
UDL我不是很清楚,我突然考虑到一个问题,就是我说的方法安全性很差,不适合用来做身份验证。那还是按那位高手的方法吧。
  
希望你能给我讲讲UDL,谢谢
16
发表于 2003-5-30 10:07:38 | 只看该作者
UDL是用来测试连接的,比如说一台机器上装了一个数据库的客户端,为了验证是否连接上数据库,可以通过UDL来进行测试。附上一个UDL。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
17
发表于 2003-6-22 13:27:00 | 只看该作者
前几天自己作了一个对话框,终于可以动态连接数据库了(SE我是连接通过了的),下面是具体的代码。不过是连接Oracle的,如果要连接其他数据库,必须修改“Provider=MSDAORA;”这儿,这也是一个缺陷吧。
本来UDL也可以连接的,可惜我没有成功,如果那位有兴趣,可以去试试,我本来有一点代码,可惜一时没找到。不过要是谁连通了请说一声。
  
int Init;
_ConnectionPtr m_pConnection;
HRESULT hConnection;
static int i=AfxOleInit(); //初始化 com 接口
void InitDatabase()
{
  CString TempShuJuYuan,TempYongHuMing,TempMiMa,str;
  Init=1;  //默认会写入数据源,用户名和密码//
  
  hConnection= m_pConnection.CreateInstance("ADODB.Connection");
  try
  {
    if(SUCCEEDED(hConnection))
    {
      CInitDataBaseDialog dlg;
      if(dlg.DoModal()==IDOK)
      {
        TempShuJuYuan=dlg.m_ShuJuYuan;
        TempYongHuMing=dlg.m_YongHuMing;
        TempMiMa=dlg.m_MiMa;
      }
      else
      {
        Init=0;
        return;
      }
        
    str.Format("rovider=MSDAORA;Data Source=%s;User ID=%sassword=%s;",TempShuJuYuan,TempYongHuMing,TempMiMa);
    _bstr_t bstr(str);
    hConnection =m_pConnection->Open(bstr,"","",adModeUnknown);
    AfxMessageBox("数据库连接成功!");
    }
  }
  catch(_com_error e)///捕捉异常
  {
    CString errormessage;
    errormessage.Format("连接数据库失败!\r\n错误信息:%s",e.ErrorMessage());
    AfxMessageBox(errormessage);///显示错误信息
  }
}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
18
发表于 2003-6-23 15:25:06 | 只看该作者
用UDL连接时的部分资料
ADO连接对象可以很方便地使用UDL文件来连接数据源,下面例子使用my_data1.udl来创建ADO连接。  
_ConnectionPtr m_pDBConn;  
m_pDBConn.CreateInstance(__uuidof(Connection));  
m_pDBConn->ConnectionString ="File Name=c:\mydir\my_data1.udl";  
m_pDBConn->Open("","","",NULL);  
这样一来无论数据源如何变化,在软件中都可以用统一的方法编程。当数据源改变时,只要双击相应的udl文件即可可视化地设置数据源,无需更改软件。  
因为ADO是COM接口,为了软件的可靠性,打开ADO连接时,可以加入异常处理代码。  
try{  
m_pDBConn->Open("","","",NULL);  
}catch(_com_error &e){  
//处理异常的代码  
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .   
m_pDBConn=NULL;  
}  
因为_ConnectionPtr m_pDBConn是智能指针,应在处理异常代码时将智能指针设为NULL后将自动将引用计数降为0。  
如果不出现异常,只要在使用完m_pDBConn,只要引用Close方法即可。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2025-1-29 08:30 , Processed in 0.024203 second(s), 9 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2025 www.iCAx.org

快速回复 返回顶部 返回列表