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

在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秒内完成查询操作。
VB使用 WIN95 的选择目录对话框 使指定窗口总处于其他窗口之上 -VB资料 通用对话框专辑(全) -VB资料 透明的Form上显示背景透通图 -VB资料 图像在图片框中的滚动 -VB资料 拖动无标题窗口-VB资料 拖动无系统标准标题栏的窗口-VB资料 文本框中光标位置的获得-VB资料 无关联程序时开启“打开方式”窗口 -VB资料 显示 Combo 的下拉条 -VB资料 显示Windows系统的标准ABOUT窗口-VB资料 显示程序的版本 -VB资料 显示窗口的水平和垂直滚动条-VB资料 一劳永逸让VB自动改变控件大小 移动没有标题栏的窗口 -VB资料 隐藏Win95任务栏 -VB资料 VB用API函数打开 MS CommonDialog对话框 VB用MSGBOX函数设计版权信息: 用VB5 制作“闪烁标题栏”窗体 用VB5.0获取正在系统中运行的窗口标题 用VB实现浮动按钮 用VB5实现窗口图象缩放、滚动技巧 用VB6建立带光栅的超级开始菜单 用VB尝试新的界面风格 用VB建立字符界面的控制台程序 用VB快速读取TextBox第N行的数据 用VB 设计VCD播放器 用VB设计更好的用户界面 用VB设计聚焦框程序 用VB实现“ICQ”式的启动欢迎画面 用VB实现全屏幕图形界面及动态功能提示 delphi中获得当前系统日期是什么函数? vb中有沒有像VC中的多行注解格式/*......*/ 大家帮我一个朋友看看:这种公司还能呆吗? 随机函数是? 软件发布:KindDiary日记软件发布 delphi6.0连接SQL SERVER2000时的问题 杭州博讯软件有限公司招聘PHP+MYSQL 程序员 CSDN怎么加不成分了?我都试了3、4遍了,迷茫中........ 关于*.ini 关于任务栏隐藏的新问题 令狐冲你在么,有点事向你请教 怎样改exe图标。 用winsock1.1编写TCP方式通讯。执行recv函数出现提示框“Unhandled exception in XX.exe(MSVCRTD.DLL): 0xC0000005:Access Violation.” 请教高手!在用NetMessageBufferSend()函数时为什么编写时出现提示信息但编译时却说undeclared identifier const SQ = $82040030 中给SQ常量付的值是什么值?能解释一下吗? 请大家帮帮我(CListCtrl的问题)! 怎样使用script语言使当前所有的超级连接失去焦点?--包括网页当中的框架! 简单的同步问题…… 如果解决命名冲突? IP指定端口的sniffer Delphi6 下 安装 ZipTV 4.14 问题 奇怪的编译错误。。。 谁知道有什么软件可以锁定目录? 请教为什么我的javah命令总是显示error: Class ***.class could not be found. 现在不能给分了吗? 请问如何在Oracle中新建用户并且如何建立新的数据库。 着急,时间格式 软件发布:KindDiary日记软件面世 如何屏毕掉Ie页面上方的打印项!!!!!急急急 关于Sybase SQL Anywhere 5.0的问题? 用winsock1.1编写TCP方式通讯。执行recv函数出现提示框“Unhandled exception in XX.exe(MSVCRTD.DLL): 0xC0000005:Access Violation. 算法的作业,可以帮忙么?谢谢! 200分再问个小小小小小问题????????????????????????? 程序员年龄及联系统计 寻找一个API的用法的例子 存储过程问题,高分求救,块点啊 哪里有crytal report的汉化包下载?急急!! 请问shtml 与 html 有什么区别? 请教问题,保证给分 急!急!!(帮帮我吧,小女子这厢有礼啦!) 急!!怎样让图片循环显示? CDOWF是什么东东,谁能解释一下,还有,怎么用Outlook2K开发流程 高手请进。。如何用程序控制使Application->MessageBox生成的对话框自动消息 小小问题,各位请进...... 请问各位大侠:如何实现双机切换?? 通过什么设备能把电话拔的一个号码传到计算机里,然后可以保存。 mscomm中怎么设置其收发模式? 有一个oracle数据库的表。还有一个access数据库表。oracle表数据很大。有没有好办法能很快的把数据从oracle导入access.用代码。我又一个方法。。。来看看吧!~!!! 各为好,请问怎样在ORACLE中建数据库和表,并用VB的ADODC控件与其建好的数据库进行联接,其中WINDOWS中的ODBC又是怎样设置的??多谢. jsp程序调试问题 CSDN上的一道題,我把它拿到MS News group 上去,結果…… 你知道cm 是厘米吗,毫米 是 mm 一寸照片一般宽2cm多一点,长3cm多 EXCEL如何对数字分解乘系数.如 若X 一项工程,甲工程需要6天完成,已工程需10天完成,甲乙俩个工程合作,X天可完成,依题意,可列方程 一件工程, 甲乙合做8天完成, 甲单独要做30天, 现在2队合做4天后, 乙队另有任务, 由甲又单独做了10天问一共完成了这项工程的几分之几?详细一点, 要我明白, 不要用什么字母, 谢谢了! 病毒大小的测量单位是 选项: a、dm b、cm c、mm d、μm e、nm 一项工程,甲单独做6天完成,乙单独做12天完成,甲单独做2天后,两人合作再用x天完成,根据题意列出方程 一项工程,甲乙合作8天完成,甲单独要30天完成,现甲乙合作4天后,再甲独做10天,甲完成了这项工程的几分之几?还剩这项工程的几分之几没完成?这件工程乙单独做要几天完成? 在一容器中盛有密度为0.8x10三次方 千克/米三次方的酒精,已知容器底受到的压强是2400帕,求酒精的深度是多少?(g取10N/kg) 二分之一,六分之一,十二分之一,二十分之一.规律填空:第九,弟十四,弟二零零九个数是什么?急 一个工程,甲单独做20天完工,乙单独做30天完工,现在甲先做若干天后由乙代替甲 ,乙比甲多做10天完工,问甲工作了几天? 一项工程,甲,乙两个队合作,6天可以完工,现在甲先做4天,乙又接着做8天正好完工.乙 初一的关于体育爱好的作文大约10句话到15句左右 把翻译写出来 语句通顺 流畅 最近上英语四级班受打击了为了我的作文请教我一些英文的名人名言吧越多越好 甲乙两个工程队合修一条公路,甲队单独修要8天完成,乙队单独修要6天完成.现在要求4天修完这条公路,并且甲、乙两队和修的时间尽可能少,那么甲、乙两队最少要合修多少天? mm是什么单位?1米是多少mm? 篮球名言(英文的,要少点哦球衣上要的)求大神帮助 excel中,怎样使一个单元格的数加上另一个单元格的数后还是显示到这个单元格rt,假设A1单元格是5,A2单元格是5,运用什么样的函数来使A1加A2后的结果还是显示到A1中, 甲工程队每工作6天休息一天,乙工程队每工作5天休息2天.一项工程甲队单独做需要97天,乙队单独做需要75天,如果两队合作,从2002年3月3日起开工,几月几日可以完工? 求篮球的名言(英文)注意:要英文+中文 请问如何使EXCEL单元格为0的数字自动跳为“-”且无千位分隔号现我的单元格设置是 会计专用 在符号的地方选择无 ,可是在出现千位以上的时候会出现千位符, 现在的希望的是千位符号不出 甲工程队每工作5天必须休息一天,乙工程队每工作6天必须休息2天.一项工程,甲工程队单独完成需甲工程队每工作5天必须休息一天,乙工程队每工作6天必须休息2天.一项工程,甲工程队单独完成 英文名言(体育)要有翻译 (急) 谁答的好追加分. 用英文写的一篇,怎样打篮球的作文 一项工程,甲工程队先做4天,完成了工程的五分之一后,乙和甲一起做6天,完成总工程.一定要有过程 (1)一块厚度为5厘米,密度为2.5×103千克/米3的砖平放在水平地面上,它对地面的压强是多少帕?(2)用这种砖砌墙,在每上、下两层砖及砖与水平墙基的缝隙间,充满厚度为1厘米,密度为2.0×103千 excel中如何将数字改为文本格式 有分数来表示一小时25分=( )时 25立方米80立方分米=()立方米 比1/4米多1/3是( )米 一袋面粉50千克,用去( )千克 3.有一种砖的密度为2.5×103千克/米3,能承受的压强为2.45×105帕斯卡.若这种砖整齐地堆放在能承受2×106帕斯卡的水平地面上.则砖最多能堆______米高. cm和mm哪个大 计算机信息存储的基本单位是:(英文为 简写 ); 怎么把excel表格中数字分成几段?例如3150005100024015,我想把前8位列在一栏,后6位列在另一栏. 一项工程,甲单独做需要10天完成,乙单独做需要6天完成,现在由甲做2天,乙在加入合做,求完成这项工作共用方程做 微机的PC是什么的缩写? excel如何分解一排数字,比如123456789,要分解成12345678 9 各两列,请问有批量分解的办法吗 一项工程甲单独做需要10天,乙单独做需要6天,现有甲做2天,然后甲乙合作,还需要多少天才能完成工作?我今天晚上10点之前要!一项工程甲单独做需要10天,乙单独做需要6天,现有甲做2天,然后 英语pc缩写是什么意思 怎样在excel中把一个数分成几个数比如,把100分成五个数,每个数分别不能大于20,20,15,10,35.可以带小数.该用什么函数或公式?我可能没讲清楚.就是把一个数分成五个数,其中的每一个数都有一个 一项工程,甲单独做需10天完成,乙单独做需6天完成,现由甲先做2天,乙再加入一起做,完成这项工作还需多少天?设还需X天然后呢? piece作为单位的简写是 pc 还是pcs做单位 一工程,甲、乙合作8天完成,甲单独做药30天完成.现在甲、乙合作4天后,再由甲单独做10天,一共做几分之 求一篇介绍篮球的英文文章(最好有个对应的幻灯片就更好了,上课用)求一篇介绍篮球的英文文章(最好有个对应的幻灯片就更好了,上英语课演讲用.)急!你翻译的让中国人和外国人都服了 请你从30 0.25 7.2 25 0.75 0.9 .0.4和9这些数种,选择合适的数填空,使式子成立()除以()+()*()约等于10 列式:一个数的3/4比40的25 求一篇[篮球发明史英语文章]注意是发明史不是发展史字数不限 请你从30、0.25、7.2、25、0.75、 0.9 、0.4和9这些数中,和合适的数填空,使试子成立.(数可以重复使用) 7.2×()=7.2÷2.5 7.2÷()>7.2×() 0.3×()+1.2×()约等于1 ()÷()+()×()约等于10 玩具总动员3英文简介和意思 Cm是厘米还是分米? 选择适合温度填空(-94.5°C,-88.3°C,35°C,26°C,-25°C,30°C)你知道世界最冷和最热的地方在哪里?世界上最冷的地方在南极洲,年平均气温在( )以下,最低气温达( ),历史上曾出现过( )的 《玩具总动员1》《玩具总动员2》《玩具总动员3》的主要内容是什么? cm是厘米还是毫米呀? 选数填空 16 20 25 401.()是()的百分之八十2.()是 ()的1.25倍3.()是()的五分之四4.()比(0多百分之255.3分之X+X=18 6.参加科技小组的人是体育小组的百分之125,参加科技的比体育多32 玩具总动员人物简介,英文 快、、、Sheriff WoodyBuzz Lightyear Jessie, the Yodeling CowgirlStinky Pete the ProspectorMr. Potato HeadRex the Green DinosaurTour Guide BarbieWheezy the PenguinSlinky DogHamm the Piggy Bank 某砖所能承受的最大压强4.9*10^5帕,如果用这种砖来砌墙,墙最多有多高?(砖的密度为2*10^3千克/立方米 打篮球的作文怎么写? 376mmx 265mm化为cm376mmx 265mm化为厘米是几乘几啊 .? 甲队单独做5天完成,乙队单独做6天完成. (1)甲乙合作两天,完成了总工程的几分之几?(2)甲乙合作两天后,由甲单独做,还需几天完成?帮我,急! 作文,帮我写写有关:关于打篮球类的作文呢呢 447.6*395.2*188MM化成CM是多少 英语演讲小短文 关于篮球的需要 100 字左右 是因为 要口语竞赛 所以 哥哥姐姐 甲独坐10天完成,乙6天,若甲独座2天后,乙加入合做X天完成,则依题意.所列方程是?一元一次
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn