CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  PowerBuilder >  基础类

关于Access数据库路径在程序中被更改的问题

楼主ninansky(呢喃)2006-05-03 16:51:13 在 PowerBuilder / 基础类 提问

本人在做一个管理系统,在程序中有一段程序要把图片导入到窗口的Picturn   Control中,代码如下  
  string   pic_filename,pic_fullname  
  int   fileid  
  blob   emp_pic  
  if   getfileopenname("open",pic_fullname,pic_filename,"jpg",&  
  "Jpg文件(*.jpg),*.jpg,"+   &  
  "Bmp文件(*.bmp),*.bmp",".\photo")<1   then     return  
  end   if  
  fileid=fileopen(pic_fullname,StreamMode!)  
  pic_path=pic_fullname  
  if   fileid<>-1   then  
  fileread(fileid,emp_pic)  
  fileclose(fileid)  
  p_photo.setpicture(emp_pic)  
  end   if  
  当执行过这段代码后,再点击保存按钮要将数据保存到数据库中,但却提示数据库路径错误  
  提示如下:  
  ODBC   Microsoft   Access驱动程序登录失败  
  在提示中可以看到原来数据库所在的.\database目录被改为了.\photo\database目录  
  因此目录出错,数据库连接失败  
   
  是不是在打开图片完了以后还要加上什么语句呢?  
   
  请教大家解决的方法,先谢过了!!!!!! 问题点数:100、回复次数:4Top

1 楼zz_bubble(bubble)回复于 2006-05-03 17:13:52 得分 40

在程序开始时先用GetCurrentDirectory()函数读出当前应用的绝对路径并保存到一个全局变量中,在以后需要调用的文件路径前都加上这个绝对路径就不会再出错了。Top

2 楼wfliu()回复于 2006-05-03 18:15:42 得分 60

开始前先取得当前路径   ls_cd   =   GetCurrentDirectory()  
   
  程序段结束后再设回当前路径   ChangeDirectory   (   ls_cd   )  
   
  就可避免程序运行时修改了当前路径。Top

3 楼ninansky(呢喃)回复于 2006-05-04 00:41:27 得分 0

好了,谢谢两位,能再问个问题吗,为什么会出现这样的情况,能讲一下原因吗,是否有其它预防方法呢?????Top

4 楼wfliu()回复于 2006-05-05 09:18:06 得分 0

出现这种问题的原因是你调用getfileopenname()时,就修改了默认路径,而你数据库文件的访问是采用相对路径,不是绝对路径,所以修改了默认路径后找不到数据库。Top

相关问题

关键词

得分解答快速导航

  • 帖主:ninansky
  • zz_bubble
  • wfliu

相关链接

  • PowerBuilder类图书
  • PowerBuilder类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo