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

在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秒内完成查询操作。
RECT在Delphi中的灵活使用 StringGrid制作只读列-Delphi资料 TADOQuery下主明细表其属性关系如何设置,如何保存主表和明细表?-Delphi资料 TBatchMove用法-Delphi资料 TMemo的真正插入字符-Delphi资料 TREEVIEW的使用-Delphi资料 TreeView在电信综合统计管理系统中的应用-Delphi资料 VB6.0动态加载ActiveX控件漫谈-Delphi资料 捕捉来自 Thread 的异常-Delphi资料 定制Speedbar-Delphi资料 动态产生构件并相应事件-Delphi资料 对Borland可视部件的一处改进-Delphi资料 控件使用技巧-Delphi资料 改变VCL的行为--一个使用可视化元件的实例-Delphi资料 具有不同字体的列表框-Delphi资料 快速大量地更改控件内容-Delphi资料 快速动态创建MenuItem-Delphi资料 利用Delphi 5中调用Excel 97 利用Delphi的Tbitmap控件抓取屏幕图象 利用delphi美化你的菜单 面向组件的系统开发方法-Delphi资料 强大的树型编程控件TeeTree1.01-Delphi资料 确定MEMO控件中的当前行和列-Delphi资料 让字体左、右对齐-Delphi资料 如何给TListBox加上水平的滚动条?-Delphi资料 如何快速选择一个组件的父亲-Delphi资料 如何用Delphi编写自己的可视化控件 如何用VB创建控件-Delphi资料 生成程序组和项-Delphi资料 实现超级链接-Delphi资料 实战Delphi数据网格色彩特效 水平考试与资格考试及格分别是多少分? 如何再网页中实现打印功能,份也打印。 我发现了一个网站的BUG,我该怎样进去? 到处都是泡泡,俺看的想吐,晚上再来算了。 怪事, 屏幕变黑白 我的问题_6 MYSQL中like的问题 请教打印预览问题 请问,如果我想把,file edit tools window这个主菜单栏动态去掉,怎么做? 如何用程序代码实现在Memo文本编辑框中被选中的文字加下划线。 怎样分析tcp报文(我很急呀) *.idl文件如何使用? 各位大侠,怎么写一个php在线打分的程序阿? 我测试一下 感兴趣的去试试! IE外壳扩展的程序 Delphi 6.0的一个Bug??? 我怎么把字符串放进缓冲里?急急急!!! 恭喜 zhipop 喜得漂亮的可爱的千金 几个小问题想请教大家 如何将浏览器的地址栏里的IE图标换成自己的图标? r俺明天想去给我的宝马生生级,不算显示器,3000元左右,请各位大侠们赐教该什么配置 2000下写的程序,NT 4.0workstation上为什么不能跑? 启用新主页下载数据窗口编辑器 请教Qbasic中的几个问题..... 用BCB如何向Oracle8.0.5中更新BLOB 用ODBC编程时发现错误:nvarchar 类型无数据类型同其绑定,用CString 出错!如何解决? 救命,救命!!!!!!!!!!!! 【 这两天好像来了很多新人嘛!来报个到吧! 】 请教:如将一个 FormView 的 ScrollBar 去掉 在asp中怎么定义可变长的数组? 关于文本框的问题(你能回答吗?) X档案第三季有一集叫《网络情人》,讲的什么内容? 如何登陆interbase de local server? 确定星座是按农历,还是公历????? 请问哪里能买到苹果7300主板,大概多少钱? vc高手快来帮我 我可以通过style定义普通字体的大小,却不能定义表格中字体的大小 BDE + SQL AnyWhere6.0问题!求救!SOS! 最新消息:泡泡是个PLMM 如何实现关机前所有文挡的自动保存 兄弟要进行一项庞大的工程 . 输全国县以上地区的编码. 我用powerbulider设计了一个报表,如何能在vc程序中使用这个报表 如何用回车键代替tab键在sle之间移动焦点 讨论:关于翻译英文文章的版权问题????????? 【 本人收到N多从+888发来的短信息,内容是:此信息无法显示!Faint! 】 如何将程序做成30天的试用版本并禁止拷贝? 请问select top 10 * from table order by time , time字段有很多相同记录 如何能得到UNIX下的C语言编程软件及书籍? how to install XWindow at RedHat7.1 with NVIDIA GeForce2 MX 在win2000上使用什么即时查杀病素的软件 500克等于多少个100毫克 现有0.1摩尔每升硫酸钠额溶液300毫升,0.1摩尔每升的硫酸镁溶液200毫升和0.1摩尔每升的硫酸铝溶液100毫升,这三种溶液中,硫酸根离子的浓度之比是()A.1:1:1 B 3:2:2 C.3;2:3 D 1:1:3 小学单位换算公式 2000毫升水有多少千克此问题对我很严重.还请各位尽量回答我. 1摩尔每升的碳酸钠100毫升,加入50毫升2摩尔每升的硫酸钠,将所得溶液稀释到200毫升我算的答案是2摩尔每升,老师说不对, g和ml怎么换算? 50毫升B摩尔每升的ALCL3溶液加入50毫升A摩尔每升氢氧化钠溶液当A小于等于3b时生成氢氧化铝的沉淀物质的量 配置500摩尔每毫升的Na2SO4溶液,需要硫酸钠的质量是多少克?配置500mL0.2摩尔每毫升的Na2SO4溶液,需要硫酸钠的质量是多少克? g跟ml要怎么换算啊? 向20毫升氯化铝溶液中滴入2摩尔每升氢氧化钠溶液时,沉淀质量与所滴加氢氧化钠溶液体积(ml)铝离子完全沉淀时沉淀质量为0.78g,假设溶液中有氢氧化铝0.39克,则此时用去氢氧化钠溶液的体积 吨,升、立方米、立方分米、立方厘米、克、毫克,换算如题 ug/ml和mIU/L的换算公式 向20毫升氯化铝溶液中滴入2摩尔每升的氢氧化钠溶液时,得到氢氧化铝沉淀的质量与所滴加氢氧化钠溶液体积关系如图所示.(1)图中A点表示的意义是____________.B点表示的意义是____________.(2)上 每立方厘米0.16毫克换算成千克每立方米 换算~l和ml100ml药兑水2000l那80ml水加多少药?是80ml水~不是80ml药~ 如何配置0.5摩尔每升的无水碳酸钠溶液500毫升 例如1A= mA = uA1V= kV请各位给我初二全部物理的单位换算,进率 我的药物浓度是:6mg/ml 分子量为150kd .换算成mmol/L,怎么换算啊?换算公式是什么? 实验室用NaCO3·10H2O 晶体配制500毫升0.1摩尔每毫升的碳酸钠溶液 应称取NaCO3·10H2O 多少克 物理上单位换算一千米每时等于多少米每秒? g到斤的换算公式 取500毫升碳酸钠溶液与300毫升浓度为一摩尔每升的盐酸反应,在不断搅拌下将碳酸钠溶液逐滴滴入盐酸中与将盐酸滴入碳酸钠溶液中,所产生气体的物质的量之比为3:2.则碳酸钠的浓度是多少? 物理单位换算关系 g、μg的换算公式谢谢了,1克=1000毫克 1毫克= μg 配制500毫升2摩尔每升的硫酸溶液需浓度为百分之九十八,其密度为1.84克每立方米的浓硫酸呵水各多少 一吨每立方米等于多少千克每立方分米?一千克每立方分米等于多少克每立方厘米?千克每立方米等于多少千克每立方分米?. 液体与质量关系?如何换算?500ml酒=多少斤?要计算过程? 如何配制溶液500毫升的碳酸钠溶液 求数学单位换算 1L=?立方cm 1平方米=?平方厘米 1平方分米=?平方厘米求数学单位换算 1L=?立方cm1平方米=?平方厘米1平方分米=?平方厘米 单位 CC与ml 如何换算?CC是什么单位?ml又是什么单位?这两个能换算么? 用98%浓硫酸配制500毫升1.0摩尔每升的硫酸溶液? 尺与平方米的单位换算是什么样的? CC是什么单位?与ML能换算吗? 用98%的浓硫酸(密度为1.84克每毫升)配制1摩尔每升的稀硫酸100ml,需要硫酸多少? 网络10兆等于多少m 西西cc(作为单位)与ml怎么兑换? 需要0.5摩尔每升的硫酸500毫升若使用溶质的酸进行配置,问题是:1.该浓硫酸的物质的量浓度 2.需要浓硫酸的 兆的单位换算一兆等于多少? 200g等于多少ml牛奶? 在20毫升0.1摩尔每升醋酸溶液中逐滴加入20毫升0.1摩尔每升的氨水溶液,溶液导电能力逐渐增强.为什么? 二十兆流量等于多少M? 200g水=?ml=?mol 将20毫升0.1摩尔每升的醋酸钠与10毫升0.1摩尔每升的盐酸混合溶液显酸性,溶液中个离子浓度的比较 单位换算20分之13吨等于多少千克 静脉滴注一滴是多少ml?如何将滴速和ml数转换? 舍得酒经典台词 下列溶液中含氯离子物质的量浓度最大的是( ) A.30毫升0.2摩尔每升KCI溶液 B.20毫升0.1摩尔每升氯化钙溶液,C.10毫升0.1摩尔每升氯化铝溶液 D.100毫升0.25摩尔每升氯化钠溶液 角度单位换算的公式要详细点的1度等于多少秒多少分 50度41分20秒等于多少度写出来详细 舍得的含义?如何舍得,如何取舍 把2.5毫升0.1摩尔每升的硫化钠溶液与1毫升0.1摩尔每升的亚硫酸钠溶液和7毫升0.1摩尔每升的盐酸混合后,充分反应后生成的产物中硫元素的存在形式为()1.S2.S,H2S3.S,SO24.S,H2S,SO2可答案是3阿 单位换算公式都有哪些? 怎样辨别舍得酒的真假想买一瓶给老爸,还怕买到假酒,请懂行的朋友帮帮忙!积分不多, 24毫升浓度为0.05摩尔每升的NA2SO3溶液恰好与20毫升浓度为0.02摩尔每升的K2CR207溶液完全反应,已知NA2SO3被K2CR207氧化为NA2SO4,则元素CR在还原产物中的化合价是多少设CR在还原产物中的化合价为X,0.0 单位换算的公式!(1)70微米=()米=()毫米(2)0.05分米的二次方=()米的二次方=()厘米的二次方(3)200厘米的三次方=()米的三次方=()升(4)10的-10次方米=()纳米=()微米(5)3 250毫升等于多少毫克 配制0.2摩尔每升硫酸钠溶液50毫升,需要称取固体硫酸钠的质量是多少 单位换算公式长度、重量、面积、体积等的换算公式每个分类的公式 越具体越好!还有啊 长度单位【寸、尺…】 重量单位【斤、钱…】 请问250毫克等于250毫升吗? 将100毫升0.3摩尔每升的硫酸钠溶液和50毫升0.2摩尔每升的硫酸铝溶液混合后,所得溶液中硫酸离子的物质的量 长度单位换算公式
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn