会员登录 用户名: 密码: 登录 新会员注册 [找回密码]
当前位置:编程论坛 >> C/S程序开发专区 >> PB编程论坛 >> 对数据库进行优化?
首页
  发表一个新主题  发表一个新投票  回复主题 您是本帖的第 2405 个阅读者浏览上一篇主题  刷新本主题   平板显示贴子 浏览下一篇主题
 * 贴子主题:对数据库进行优化? 悬赏分100 [提问中] 报告本帖给版主  显示可打印的版本  把本贴打包邮递  把本贴加入论坛收藏夹  发送本页面给朋友  把本贴加入IE收藏夹 
 jinsanjiao 帅哥哟,离线,有人找我吗?
  
  
  等 级:初出江湖
  积 分:212
  专家分:0
  提问帖:0/0
  回答帖:1
  总帖数:1
  经验值:41
  注 册:2008-3-28
给jinsanjiao发送一个短消息 把jinsanjiao加入好友 查看jinsanjiao的个人资料 搜索jinsanjiao在PB编程论坛的所有贴子 引用回复这个贴子 回复这个贴子

发贴心情 

我要把c:\book文件夹下的所有文件和文件夹,复制到d:\book文件夹下,,,,,帮我参看这里的代码改下,好么,小妹以身相许!!!!
 
 Function Boolean CopyFileA(String lpExistingFileName, 
 String lpNewFileName, Boolean bFailIfExists) library "Kernel32.dll" Alias for "CopyFile" 
 
 lpExistingFileName = "d:\aa\data\a.dbf" 
 lpNewFileName = "d:\aa\data1\a.dbf" 
 
 bFailIfExists = false 
 

 1、文件拷贝 
 函数声明: 
 FUNCTION boolean CopyFileA(ref string cfrom, ref string cto, boolean flag) LIBRARY "Kernel32.dll" 
 调用: 
 string ls_source, ls_des 
 boolean lb_flag, lb_rtn 
 
 lb_flag = false 
 ls_source = "c:\book.xls" //源文件 
 ls_des = "C:\tmp\111.xls" //目标文件 
 lb_rtn = CopyFileA(ls_source, ls_des, lb_flag) 
 MessageBox("文件拷贝", string(lb_rtn)) 
 
 补充: 
 如果该函数是这样申明的: 
 FUNCTION boolean CopyFileA(ref string lpExistingFileName,ref string lpNewFileName,boolean bFailIfExists) LIBRARY "kernel32.dll" 
 
 那么函数中的前两个参数必须使用变量,不能使用常量 
 比如 
 string ls_from ="f:\dfgl\dfgl.db" ,ls_to = "c:\dfgl\bak\dfgl.db" 
 
 
 2、删除文件 
 函数声明: 
 FUNCTION boolean DeleteFileA(ref string filename) LIBRARY "Kernel32.dll" 
 调用: 
 string ls_file 
 boolean lb_rtn 
 ls_file = "C:\tmp\111.xls" 
 lb_rtn = DeleteFileA(ls_file) 
 MessageBox("文件删除", string(lb_rtn)) 
 或者用PB本身的函数FileDelete()来删除文件。 
 
 3、删除只读属性的文件 
 先定义一个外部API函数用于将文件属性设置为普通(以免原来文件属性为只读不能删除) 
 FUNCTION ulong SetFileAttributes(ref string lpFileName,ulong dwFileAttributes) LIBRARY "kernel32.dll" ALIAS FOR "SetFileAttributesA" 
 
 调用: 
 integer ret, value 
 string docname, named 
 value = GetFileOpenName("Select File", docname, named) 
 IF value = 1 THEN ret = MessageBox("提示信息", "确实要删除选中的文件吗?", Question!, OKCancel!) 
 IF ret = 1 THEN 
 SetFileAttributes(docname, 32) 
 FileDelete(docname) 
 End If 
 
 
 如何创建文件夹 
 
 函数申明 
 Function boolean CreateDirectoryA(string lpPathName,string lpSecurityAttributes) Library "kernel32.dll" 
 
 程序调用 
 string ls_pathname, ls_SecurityAttributes 
 ls_pathname = 'd:\aa' 
 CreateDirectoryA(ls_pathname,ls_SecurityAttributes)


//string ls_pathname, ls_SecurityAttributes 
 ls_pathname = 'd:\aa' 
 setnull(ls_SecurityAttributes) 
 CreateDirectoryA(ls_pathname,ls_SecurityAttributes) 
 
 //删除文件用递归

//既然你的是pb8,那么就用pb8中的函数 
 
 string ls_directoryname, ls_file_name, docname, named, ls_delete_file 
 Long ll_len_full,ll_len_file, ll_rowcount, i 
 integer li_value 
 
 //如果一个文件夹下有文件,那么要先把这些文件删除以后才能删除文件夹 
 //借助listbox控件得到文件的名字,然后逐一删除文件,最后再删除文件夹 
 
 li_value = GetFileOpenName("取文件",docname, named,"所有文件,*.*,") 
 
 if li_value = 1 then 
 ll_len_full = Len(docname) 
 ll_len_file = Len(named) 
 ls_directoryname = Left(docname,ll_len_full - ll_len_file) 
 lb_1.DirList(ls_directoryname + "*.*", 0) 
 end if 
 
 ll_rowcount = lb_1.TotalItems() //文件夹下的文件总数 
 
 for i = 1 to ll_rowcount 
 ls_file_name = lb_1.text(i) //每个文件的名字 
 ls_delete_file = ls_directoryname + ls_file_name 
 filedelete(ls_delete_file) 
 lb_1.settop(i) 
 next 
 ls_directoryname = left(ls_directoryname, len(ls_directoryname) - 1) 
 RemoveDirectory(ls_directoryname) //删除文件夹 
 
 //删除文件(文件夹)和创建文件夹分开进行 
 ls_directoryname = "d:\aa" 
 CreateDirectory(ls_directoryname)  //创建文件夹 
 

//删除文件夹下的文件,删除文件夹,创建文件夹都分开进行 
 
 string ls_directoryname, ls_file_name, docname, named, ls_delete_file 
 Long ll_len_full,ll_len_file, ll_rowcount, i 
 integer li_value 
 
 //如果一个文件夹下有文件,那么要先把这些文件删除以后才能删除文件夹 
 //借助listbox控件得到文件的名字,然后逐一删除文件,最后再删除文件夹 
 
 li_value = GetFileOpenName("取文件",docname, named,"所有文件,*.*,") 
 
 if li_value = 1 then 
 ll_len_full = Len(docname) 
 ll_len_file = Len(named) 
 ls_directoryname = Left(docname,ll_len_full - ll_len_file) 
 lb_1.DirList(ls_directoryname + "*.*", 0) 
 end if 
 
 ll_rowcount = lb_1.TotalItems() //文件夹下的文件总数 
 
 for i = 1 to ll_rowcount 
 ls_file_name = lb_1.text(i) //每个文件的名字 
 ls_delete_file = ls_directoryname + ls_file_name 
 filedelete(ls_delete_file) 
 lb_1.settop(i) 
 next 
 
 //删除文件夹 
 getfolder('文件夹',ls_directoryname) 
 RemoveDirectory(ls_directoryname) 
 
 //创建文件夹 
 ls_directoryname = "d:\aa" 
 CreateDirectory(ls_directoryname)

发帖:2008-3-29 0:10:00

本主题贴数15,分页:[返回帖子列表] [上一页] [1] [2] [下一页]

 *树形目录 顶端 
主题:  对数据库进行优化?(236字) - txi2008,2007年10月25日
    回复:  你用的什么数据库呀(18字) - bangwenx,2008年5月15日
    回复:  我要把c:\book文件夹下的所有文件和文件夹,复制到d:\book文件夹下,,,,,帮我参看这里..(4570字) - jinsanjiao,2008年3月29日
    回复:  呵呵~看问题学问题(18字) - angelo1011,2008年3月20日
    回复:  1.多 表 资 料 少 的 ..(136字) - vicky2008,2008年3月14日
    回复:  datawindow的retrieve有两个选项,rows as needed..(79字) - zxz107,2008年1月25日
    回复:  优化数据库的思想: ================ ..(2165字) - ying_wzm,2008年1月16日
    回复:  唉。。才只学了数据库原理。。只知道太多的连接(比如自然连接,笛卡尔乘积等等)会影响查询的效率,还有..(200字) - edward824,2007年12月13日
    回复:  路过,,,(10字) - chinacchh,2007年11月30日
    回复:  搜索满足条件的记录,也是要考虑效率的呵呵这个可以自己慢慢思考(63字) - 若惜,2007年11月28日
    回复:  怎么过了怎么久还不结贴啊~(26字) - 张凌云,2007年11月27日
    回复:  最好在检索书籍字段上创建索引! 可以把数据库事件探测器打开进行优化,设置CommandT..(119字) - 独孤浪,2007年10月28日
    回复:  利用存储过程啊,把所有需要存储的数据信息打包放入一个存储过程,然后用exec加上存储过程名调用存储..(186字) - 张凌云,2007年10月26日
    回复:  多表关联多少会影响性能,但是只要不用子查询应该会快很多。另外10w条记录应该不是同时取出来吧?好的..(261字) - 爱过流星,2007年10月25日
    回复:  哎!!太深奥偶不会!!!(24字) - longying,2007年10月25日

 *快速回复:对数据库进行优化?  [ 回帖是一种美德 :) ]
会员账号 用户名    还没注册?    密码    忘记密码?
内容
  • HTML标签: 不可用
  • UBB标签: 可用
  • 贴图标签: 可用
  • 多媒体标签:可用
  • 表情字符转换:可用
  • 上传图片:不可用
  • 最多15KB
  • 点击表情图即可在帖子中加入相应的表情
                                
    邮件回复 显示签名   [Ctrl+Enter直接提交贴子]