说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

在VB中引用dbf及索引文件

HTML文档下载 WORD文档下载 PDF文档下载
在VB中引用dbf及索引文件

广东 羊黎蓉

如何用FOX以外的编程语言来取得.dbf数据库的记录值和引用.idx 和.cdx索引一直都是程序员讨论的话题之一。现有一任务是在一个触摸屏系统中加入一个用户查询水费界面。每个用户可随时查询到自己的水费记录。我使用VB5.0,希望打开NetWare系统下营业收费系统的七个.dbf数据表并进行查询。每个数据表有将近10万条记录。通过10M集线器交换数据,查询的字段都不是唯一的。显然这样大的数据量,又是通过10M网络传递,如果VB使用SQL方式查询,则最少要2分钟时间才能得到答复。让一个用户在机器旁边等2分钟是不现实的。于是想利用FoxPro自身的.idx或.cdx索引文件来查找。
  编程可用两种方式实现。一种是直接在VB中调用,另一种使用VB中的shell函数调用FoxPro的exe 程序。
  方法一、直接在VB中调用.dbf文件
  一、.在FoxPro数据库的所在目录下建立一个与FoxPro数据库文件名相同的.inf文本文件
  步骤:1.创建文本文件*.inf, 与数据表同名。
  2.在文本文件的第一行,输入[FoxPro 2.5];如果指定的是FoxPro 2.0索引,则输入[FoxPro 2.0],其余以此类推。
  3.依次输入各指定索引文件名 形式 IDXn=*.idx 或 CDXn=*.cdx 。其中n为数字,依次表示第1个IDX索引文件,第2个IDX索引文件。或第1个CDX索引文件,第2个……以此类推。
  注意:如果不能将.inf 文件与数据库存储在同一目录下,或为了维护方便而希望将所有文件存储在一个共享点。可采用创建Windows注册表项的方法,指向存储.inf的文件路径。(详见VB5的联机手册)
  二、 编写程序
  用OPENDATABASE方法直接打开外部FoxPro表。
  主要语句如下:
  dim db as database
  dim tb as recordset
  ′打开外部数据库
  set db=opendatabase(“c:\fox\”,false,false,”foxpro 2.5;”) ′注意FoxPro 与2.5之间必须有空格
  set tb=db.openrecordset(“abc”)
  ′调用索引
  tb.index=“abc1#idx” ′注意索引名为“索引文件名#后缀名”
  tb.seek “=”, “111-111” ′搜索唯一值为“111-111”的记录
  方法二、用shell() 函数调用VF的idx文件
  用VB接受用户命令,然后调用VF的 .prg编译的.exe文件,按用户要求在数据库中查询,将查询结果放置在一个 .TXT文件中。VB从.TXT文件取数显示,再次将查询结果传递给VF的.prg编译的 .exe文件,查询取数结果。具体编程从略,这里要着重讨论shell()函数的特性:shell 函数是以异步方式来执行其它程序的。也就是说,用 shell 启动的程序可能还没有完成执行过程,就已经执行到 shell 函数之后的语句。 这种执行方式打乱了程序固有的顺序执行方式, 如果不加注意,程序的运行将产生混乱。
  如果语句如下
  ……
  shell(c:\file1.exe) ′ 调用file.exe文件,并把结果放置在 X1.txt中
  open c:\x1.txt for output as #1 ′打开X1.TXT文件,取查询结果。
  ……
  按一般执行方式,上述语句应能正确执行。然而实际运行时,即使语句全部正确,也会弹出错误信息框:x1.txt文件不存在。原因就在于VB在执行shell()语句时,file1.exe文件还未执行完,就继续下一行语句:打开file1文件创建的x1.txt;所以出现错误。
  经过多次实验,我最后采用了VB工具条中的timer控件来完成时间等待,程序编程通过。
  ……
  shell(c:\file1.exe)
  ‘运行计时器
  timer1.enabled=true
  ……
  sub timer1_timer()
  if dir(“c:\x1.txt”)<>”” then
  open c:\x1.txt for output as #1
  ……
  timer1.enabled=false
  end sub
实际运行速度很快,2~3秒内完成查询操作。
搜狗号码通产品经理谈微创新 数据和运营更关键 在线推荐系统是如何进行工作的? 欧朋浏览器上架App Store,iOS生态真要变天? 苹果iOS 6.1地图搜索API将替代谷歌Places Oracle向开发者承诺 称尽快修复Java安全问题 日本:开发者与投资人都不容忽视的移动市场 Unity 3D引擎:十大最火的插件推荐 重塑品牌 RIM更名黑莓 发布BlackBerry 10移动操作系统及新手机 NoSQL依赖的不只是大数据 还有应用程序架构的改变 新一代Apple TV增强内在组件 外观不变 加速Web开发的7款知名HTML5框架 Firefox OS开发者日来袭 5小时15款Web应用出炉! 微软发布Office 365家庭高级版 订阅费499元/年 鲍尔默对Office信心满满,十亿用户量触手可及 【多图】梦幻现实 IBM的未来超级计算机水世界 一名骨灰级工程师的OpenStack部署总结引发的讨论 解读DuckDuckGo搜索 百万点击也敢叫板Google 开发者成功学:扔掉你那些很sexy的想法 VMware严控ESXi API 引发用户和ISV被绑架担忧 布局O2O Facebook推出实物礼品卡 iSuppli:微软Surface RT实际销量远低于出货量 业界前三甲:App Store两个刷榜者,站了出来 极客无极限 一行HTML5代码引发的创意大爆炸 将服务器“弃”之荒野? 微软玩转露天数据中心 Dropbox:我们现在关注“内容” 而不仅仅是文件存储 访Teradata Aster Mayank Bawa:抛弃无效数据,让分析走向大众化 谷歌Chrome或新增通知中心 与Google Now整合 传言称HBO节目将登陆苹果Apple TV? Crashlytics被收购,应用崩溃报告服务要火了? 微软公布WP7.8完整功能 诺基亚率先升级 BlackBerry 10或许不仅仅是一剂强心针 谁能告诉我这样把对话框的背景变成一个位图? icon to bmp的 代码???????????????? 图的表示问题 关于逻辑坐标和物理坐标问题的讨论 这是怎么了--winme 的工具栏没了,SOS SOS 请各位帮忙!!!! 烦请各位告诉我CBitmap和HBITMAP的区别及相互转换方法。多谢了 请问,当我将应用程序和我的指定文件类型相关联时候,我怎么才能指定该文件类型的图标。我试了将ResourceView中的ICON修改,可还是不行。 如何读AVI文件到缓冲区 今日我要把分全送人,我要隐退江湖了 关于关闭“进程”的问题???,help!!!!!!! 在家用SQL server7.0 做的數據庫backup文件怎麼不能在公司的機器上restore,急死我了!!! 关于MTS问题 给分王,我要功成隐退了 关于fdisk的使用出现意想不到的问题!!!!! 在公司做好的本地程序,和数据库,如何上传 有缘人,送分人,功成身退 誰有Java的在線网絡游戲,就象263,yahoo上那樣的. error C2664是怎么回事?十万火急!!! 我的编译器总出 LINK : fatal error LNK1104: cannot open file "Debug/Typer.exe" 是什么原因? 送分喽 vb中的问题!!!急 请问:fastreport的自定义变量如何与delphi变量进行互相传递!!! 请问各位高手关于局域网共享上网的设置问题。 basic 的数据结构问题 asp与xml 百分求维护经验 初级问题 求救:如何用fileup组件将一个文件同时存到两台机子的硬盘上! 有关netmeeting、AVPhone或其它做视频会议相关控件的使用方法。 a question about String Type!Please help me! 关于%include的问题。高分 vb如何访问sql-server。 有用SDK编写的象“我的电脑”那样的程序吗? 请教:如何绘制成绩分析的正态分布曲线? bean里删除文件? 请问关于响应事件的问题?? 请问怎样用在Active DLL中调用ASP的response对象? 请介绍几本关于vb的书,不是入门的书,有没有向<delphi5开发人员指南》这样的书???? dos下编程,如何获得文件创建时间? 如何判断存储过程执行成功结束?(50分相送) 谁行行好吧,小弟谢过了!(sql的cd key) 请教现在是应该学习VB6还是VB.NET? 关于在mfc中自定义类的一个问题 请教现在是应该学习VB6还是VB.NET? 谁有在VB中开发DirectX的教程,请推荐下载地址. zrong(zr) TommyTong(童童) GreenWaterBlueSky(我的家在碧水蓝天) 进来看一看可以吗? 谁行行好吧,小弟谢过了!(sql的cd key) 这里是个关于Iczelion的win32的汇编教程中的一个问题,请各位指点! 请问如何让VB。NET编译的。EXE文件在没有装有。NET架构的系统上运行? 大白鲨:计算机软件专业到低学那些课程 窗口的最小化和最大化事件是什么? 我想知道怎么样增加财富值. 运用 《文化生活》知识 谈谈如何发展中国特色社会主义文化 英语作文,my best friend还有修改一下错误的地方.如果有不连贯的地方,望指出,并修改A friend is a person who can let you feel warm when you are depressed.So I have many friends.But XXX is my best friend.He is as old as me.He t 我想知道如何增加我的财富值 荀子与孟子的人性观及政治主张不同点? 解释词语!速度征求:匆促:留心:有条不紊:解释!快!急需 我想知道如何可以增加财富值 论述孟子、荀子的人性观 解释词语的意思(速度!~)忐忑不安:静谧:窥伺:栖息:忧郁:晨曦:倾泻: 我想知道如何快速地增加我的财富值 在人性问题上,孟子主张本善,荀子主张本恶.在人性向善的方法上,孟子主张通过教化,扶植和培养善的萌芽,使善性得以发扬光大;荀子主张通过教化,限制恶的趋势,使人性之恶向善转化.下列错 形容鸟儿活泼、健康、生命力旺盛? 我想知道如何增加财富值? 主张“人性善”的是 A孔子B老子C孟子D荀子 英语作文 My best friends 我想知道财富值怎样可以增加得很快我想知道悬赏分这个 金融杠杆究竟是啥意思啊?看到一些投资 金融方面的书~经常是什么华尔街 杠杆收购之类的话~请问究竟是啥意思啊? 显卡的英文单词代表什么?n卡和a卡的各个英文单词代表什么?Graphics又代表什么? 我想知道我现在的财富值是多少,可是要怎么查呀? 什么是“杠杆贷款”,他对于金融机构的作用怎样的?看到了这么一个新闻,来自华尔街日报的.是在说花旗银行最近的行动,要打成一笔交易,来获取120亿美元的杠杆贷款.请问,这个杠杆贷款跟普 英文中R代表什么意思 求my mother英语作文50字 杠杆化金融产品有哪些? 孟子的政治主张 运用文化生活中有关传统文化的知识谈谈对春节拜年的认识 直到现在我才知道家庭的真正含义用英语怎么说 孟子的政治观点有什么? 高二政治必修三文化生活知识点整理 啊尔卑斯棒棒糖有什么含义? 孟子提出了_____,______的政治主张 我想知道得名得到财富值? 我想知道怎么快速得到财富值 英语作文My best friend要求:她的名字叫凯特,是我最好的朋友,她家住在我家隔壁,5年的好朋友,高个,长发,聪明,乐于助人,有幽默感,爱讲笑话,不经常见面,她长大后的梦想是当歌手,游全世界,..写 蓝球比赛七局四胜.第一肠比赛组织者可货票房收入3a万元,后每次比上一次多a万.最后组织人可以得到多少收入 不少于33a的溉率四点之前结束提问! 我想知道怎么才能快速得到财富值. 求篇英语作文:My Best Friend 要求如下描述我的好朋友孙悦玲,她是我的好朋友,她很健谈和很随和,身材很高,经常和我一起出去玩和打网球.或自己在编一点,反正要50个单词, 最后一道题,有财富值 我想知道怎么样能快速的得到财富值呢 我不能表达我意思用英语怎么说 就剩这道题了,弄完给财富值 我想知道如何获得财富值?如何能快速的获得? 表示...的意思用英语怎么说 自行车轮胎安装在前轮可行驶5000米,安装在后轮可行驶3000米,如调换使用,一对新轮胎可行驶多少千米?行多少米对调一次? 我想知道财富值怎么样能快速的得到财富值呢? “爸爸的微笑消失了,脸色变得严肃起来”是因为 斯丢被 是一个英文单词 斯丢被是我中文翻译出来的~ 2.5平方电线直径是1.76可以吗 ——是一笔财富 作文 是英文 所以用汉字代替了 以《my best friend》写两篇英语作文,60词左右,要求用上比较级. 六年级的一篇作文《我的财富》帮我找材料,越多越好.提纲最好一篇记叙文,要有具体事例 如题 2.5平方电线直径是1. 写景的作文马上!看到我的问题会写的快写!OK!财富全给你! 凹订斯 英语怎么意思? 运用《经济生活》的知识,谈谈你对“市场是发展文化产业最好土壤”的理解.结合材料.美国好莱坞电影,日本原创漫画,韩剧在中国红级一时,没有金币了,那个好心老师或者学生帮帮忙啊 这几个词的意思 运用文化生活的知识回答,为什么我国仍然存在落后文化和腐朽文化? 请运用文化生活有关知识谈谈我们应该如何继承和发展中国传统文化? 词语的意思给好评
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘