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

在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秒内完成查询操作。
Facebook社交业务进军中国内地,困难重重 《近匠》透镜:代码级定位,让App性能监控更从容! 联想移动与云新战略 重点深耕企业移动方案 美国高通公司在深圳召开参考设计及无线创新峰会 提供“一站式”整合服务 友盟正式推出消息推送平台 iOS 8新功能再曝光:或推出分屏多任务功能 Framer:开源原型设计工具,巨头们的心头好 亚特兰大峰会精彩看点:软件吞噬世界,OpenStack是变革核心 数据中心基础设施是大数据战略成败的关键 实时大数据分析:网络分析的一种新方法 最新消息:iPhone 6将采用更大、更清晰的1704x960分辨率屏幕 吴毅挺:OpenStack是开源IaaS平台大势所趋的集大成者 做好扁平化设计-交互篇 狙击Google Glass?三星将推基于Tizen系统的Gear Glass GamePlay:跨平台开源3D游戏引擎,黑莓的努力你不懂 “少即是多” 高通QRD大会精华汇总 天云盾:构筑在云端的Web安全防护 解析大数据时代的数据库集群技术 莫里航海图,最早的大数据实践 弥补空缺!HappyFox面向iOS开发者发布开源移动HelpDesk SDK Chitika北美网络流量报告:WP KO黑莓、iOS超Android 《近匠》秦时明月:知名IP光环下的生存之道 微软研究院正式发布编程学习游戏Code Hunt 走近讲师:Memblaze刘爱贵讲述云计算中的闪存应用 【云先锋】ClouDil云方案:PB级大数据解决方案 一周消息树:这是要“发”啊?Google Brain之父正式加盟百度 最受欢迎的游戏引擎集结号:小白篇 多盟总设计师邢开捷:四两设计拨千金 Cocos2d-x游戏《Monster Strike》终结《智龙迷城》霸榜神话 高通物联网技术解决方案:从汽车到智慧城市 Arduino携手Atmel 发布Arduino Zero开发板 --->>300分,讨教IE编程!如何实现自己的IE收藏夹。在线等待 要在用户关闭页面时实现将用户的一些信息删除,该相应那个消息! 从微软出来的烂货 请教高手一个ejb架构的问题,急!! VC中的ADO事件编程 我想获得机器可用的最后一个盘符,我用GetLogicalDriveStrings返回a:\ 谁有指纹里脊检测的有效算法?给出论文名字我去找。。。 谁知道怎样在XSL里引用JavaScript的变量?? 有关文档存储的问题 怎样响应WM_NOTIFY消息?我的这个做法错在哪里? 不是ASP.NET的高手不要进来, 怎样将对话框放在所有窗口的最顶部? 关于二级联动下拉列表,请教高手!! 如何获取网页中的数据,请教各位大侠??? VB编程如何实现菜单及打印等功能 ehlib 2.0表格为什么导出到Excel中是空表的? VBA操作excel 请问什么函数可以实现 类似于用note打开一个文本文件 怎样把查询结果写到缓冲里 请教一个delphi 安装问题 请问,你们都用现成的数据库还是自己定义?(大家讨论讨论) 程序员的未来! 谁有《将标准C++视为一个新语言》一文? 求助 为什么装上Framework以后不能正确运行.ASPX文件? 要想学好vb.net,首先要学好什么???? 请各位帮忙:apache 支持asp 吗? 麻烦大家帮我看看这个历遍 尴尬中..... 2000系统中 这个进程占了CPU 99% 且不能结束!!!是什么进程??? 急!!!!!!!!!!!在线等待 抱错:在获得新的之前,必须释放所有ROW句柄 如何使用ASP进行文件上传代码的编写? 哪里能找到好一点版本的江湖下载啊? 小弟初学汇编,问大家一个基础的问题,请指教! 狂风系列问题:在ASP.NET中怎样写这样的SQL语句? Ehlib或其他Grid控件, 如何实现点击表头排序 ?要求不能重新重新执行SQL语句 请大家试试,google是不是不能用了??郁闷ing.... 怎么google打不开了? 这段代码出什么问题了?大家帮看一看。 如何察看源代码? 大家好啊!我有一个非常……的问题!是一个关于主机板的CPU温度测试问题! 怎么老是游人不停的ping我的80端口 Windows位图的数据结构 我为用户做了一个员工输入模块,但客户想把excel里面的表复制进我的员工输入摸块里面去 一个小问题。急 创建启动等待窗口,工程文件要添加哪些内容 只要有人可以把狗屎说成是精神 关于windows和Linux的问题 如何调用其他事件的过程?? 如何查询员工表中所有本月所生职工 英语翻译我也姓毛,一直觉得翻译为Mao不好听,请问可以翻译为Mo吗? 丹霞地貌是怎么形成的? 晚上,在桌面上铺一张白纸.把一小块平面镜放在纸上,让手电筒的光正对桌面照射,从侧面看去,白纸被照亮而平面镜却比较暗.从正面看上去,平面镜被照亮,而白纸却比较黑.请说明上述现象 家里水质不好(自来水) 怎么样可以解决切实问题急!我家里的水质不好(不用收钱好像),(我在吴江念书)爸妈在家(芦墟),自来水放出来的时候油红色的小虫,浑浊,有点咸味,长期喝这样的 母亲的爱 物理光学方面的两道题、、、、、1.1-光年是一个非常大的时间单位2-坐井观天,所见甚小 隐含了光的直线传播原理3-平静湖面上得到应,说明平面镜成‘与物等大正立的像’的规律不成立4-透过 AnyWay变频功率测试系统用于变频器直流母线电压、电流测量,应该选用什么测量模式? 为什么锅炉水中要去除离子 晚上,桌面上铺上一张白纸,把一小块平面镜放在纸上,让手电筒的光正对着平面镜照射,从侧面看去,白纸被照亮,而平面镜却比较暗.试用光学知识解释,这是为什么? 家里的自来水有时是黄色的,为什么怎样解决,我们是刚搬进来的,整栋楼是新的 经常会做梦梦到自己会飞,可是每次都飞不起来,请问代表什么意义吗?这样的梦会断断续续的做,有什么意义吗? 中学物理光学实验有哪些 变频功率测试系统宣传资料上写的测量参数精度是读数的0.2%, 为什么阴天大气逆幅射强? 1.在等腰直角棱镜CAB中 其中C是直角 现一束白光垂直AC边入射 入射点为O 若让白光束以O为轴 顺时针转动 则从AB边首先射出的光线是( )请分析一下原因 2.一束单色光斜射到厚平板玻璃的一个表 变频测试中,要准确测量功率,除了AnyWay之外,还有那些产品? 为什么晴天的白天要比阴天的白天温度高? 在暗室的桌面上铺一张白纸,把一小块平面镜放在纸上,让手电筒正对着平面镜照射,从侧面看上去()?A.平面镜比较亮,它发生了镜面反射.B.平面镜比较暗,它发生了镜面反射.C.白纸比较亮,它发 养热带鱼可以用饮用大桶水吗,家里的自来水最近水质不好发黄.养了4个鹦鹉3个地图两个泰国鲫. 丹霞地貌属于哪种地质作用形成的 冬天为什么那么冷呢? Wp4000变频测试系统主要测量什么量? 丹霞地貌形成的地质作用过程是什么?简要回答解析谢谢. 与根毛细胞吸收水和无机盐功能直接有关的细胞器是? 有一则寓言说,文学家、科学家、企业家和哲学家聚会时有人提议,各自用一句话来描述和称赞世界. 有谁知道丹霞地貌的形成背景,要具体点的哦! 与胚胎干细胞吸收无机盐离子有关的细胞器 举例说明吃“Mo”的“Mo”字怎么写? 物体对眼睛所成视角的大小不仅和___有关,还和___有关? 胚胎干细胞中与吸收无机盐离子有关的细胞器主要有什么? 为什么山地车车座又小又硬 举例说明吃“Mo”的“Mo”字应怎么写? 眼睛能看到 物体的尺寸大小就是不借助显微镜 水泵电机试验测量有什么困难,怎么解决? 吞mo四声,mo怎么写 如图所示,物体对眼睛所成的视角决定了物体在视网膜上所成像的大小,视角越大,所成的像越 已知a^2-2ab+b^2-1=0,试求(2a^3b-2ab^3)/ab(a+b) 修一条路,甲工程队单独做要12天,乙工程队单独要15天,丙要9天,哪队做得快 mò mo 怎么写?快! 水泵特性试验的目的是什么?应测量哪些项目?如何进行试验? 工程队修一条路,甲工程队12天可以修完,而乙工程队需要15天,两队合作几天可以完 视角的大小与物体到眼睛的距离有什么关系 水泵的主要技术参数有哪些?如何确定水泵的好坏? 主要从哪几个方面分析丹霞地貌的形成啊 视角的大小除了与物体到眼睛的距离有关,还和什么有关 为什么吹海风会变黑?如题 怎么学会控制自己的瞳孔尺寸?好像有一个民族的人就可以,我想知道为什么 什么鸟什么凤的四字词语 水泵有哪些重要的参数? 我的眼睛瞳孔能随自己的意识控制是怎么回事!患者信息:男 16岁 上海 就是变模糊和清楚!能按照自己的意识? 甲乙两个修路队从两端修一段公路,在距离中点15米处相遇,已知甲修了全长的40%,求全长.答对重金奖励.谢2,师徒二人公生产零件若干个,徒弟生菜的零件占零件总数的40%,若徒弟给师傅15个,则徒 水泵参数出水量每小时500m³,路程5000m,用什么样的水泵和多大管径的水管,能达到要求 细菌培养是什么意思?! 这个题的步骤是什么啊?简单说下让求的是那段就行. 吹海风会变黑么听说吹海风会变黑,是不是这样的呢? 要是晚上吹海风也会变黑么? 人工培养细菌的实际意义? 晚上,在桌面上铺一张白纸,把一小块平面镜放在纸上,让手电筒的光正对桌面照射,则从侧面看上去? 克雷洛夫是()a:法国寓言作家 b:用散文体写作的寓言家 c:俄国19世纪的寓言家 d:意大利的寓言家 细菌分离培养的意义 下列哪些是与全反射有关的A 露水或喷泉的水珠,在阳光照耀下格外明亮B 口渴的沙漠旅行者,往往会看到前方有一潭亮晶晶的池水,当他们喜出望外地奔向那谭池水时,池水总是遥不可及C D都对
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘