zoukankan      html  css  js  c++  java
  • 如何动态建立VFP能够打开的中文字段 dbf 表 北极星

    (整理自网络)

    示例:

    var table1: TTable;

    begin

      table1 := ttable.create(self);

      with table1 do

      begin

        active := false;

        DatabaseName := 'c:\'; {预定义的别名数据库工作区名}

        tablename := 'CiKu.dbf'; {将定义的数据库名}

        tabletype := ttDbase;

    {数据库类型,可为ttParadox,ttDbase,ttFOXPRO,ttASCII

    如果要让 dbf  支持中文字段

    1.打开 BDE Administrator 窗体后在Database页上选择Dbase,在Definition页中将
    Type项设为Standard;将Default Driver项设为Dbase;

    2. 选择Configration页,在Drivers的Native项中选择Dbase,在Definition页中将T
    ype项设为File;将Langdriver项设为DBASE CHS CP936;将Level项设为5。
    3. 完成上述工作后,在Object菜单中选择Save as Configration,按出现的对话框要
    求将以上的设置保存好。至此,数据库的基本配置工作就完成了,我们就可以进行下面的
    工作了。}

         with fielddefs do
           begin

          clear;
          add('编码', ftstring, 2048, false);

          add('词汇', ftstring, 1024, false);

          add('词频', ftinteger, 0, false);

          add('字数', ftinteger, 0, false);

             end;

                {使用TTable.IndexDefs.Add()方法定义索引。Add有三个参数:索引名:string; 索引字段名:string; 索引类型:TIndexOptions;   
         with indexdefs do 

        begin

         clear;

          Add('index1', '词频',[ixprimary]);

        end;

       加索引后VFP打不开 dbf 文件。不加就能打开。看delphi源码

         if FileExists(ChangeFileExt(Name, '.FPT')) or
                 FileExists(ChangeFileExt(Name, '.CDX')) then
                Result := ttFoxPro else
                Result := ttDBase;

    可以发现 delphi 以索引文件判断 DBase 和 FoxPro 。
         } 
        createtable;

      end;

    end;

    ***********************************************************************************

    附 delphi 的TTable 的属性 GetTable

    TTable.GetTableType

     function TTable.GetTableType: TTableType;
    var
      Name, Extension: string;
      FDb: Boolean;
    begin
      Result := ttDefault;
      FDb := SetDBFlag(dbfDatabase, True);
      try
        if not Database.IsSQLBased then
          if TableType = ttDefault then
          begin
            Extension := ExtractFileExt(TableName);
            if CompareText(Extension, '.DB') = 0 then Result := ttParadox
            else if CompareText(Extension, '.DBF') = 0 then
            begin
              Name := GetFileName;
              if FileExists(ChangeFileExt(Name, '.FPT')) or
                 FileExists(ChangeFileExt(Name, '.CDX')) then
                Result := ttFoxPro else
                Result := ttDBase;
            end
            else if CompareText(Extension, '.TXT') = 0 then Result := ttASCII
          end else Result := TableType;
      finally
        if not FDb then SetDBFlag(dbfDatabase, False);
      end;
    end;

  • 相关阅读:
    android 开机启动
    android 获取lanucher 列表
    原创高端影楼人像专业磨皮法教程详解 附PSD源码
    [转]在SQLPLUS启动和停止Oracle数据库
    挑印刷时间最新的地图!
    Eclipse3.2下进行ArcGIS Server 9.2 Java WebADF开发手记 Eclipse使用技巧
    [藏]常用的匹配正则表达式和实例
    [藏]C# 中的常用正则表达式总结
    [转]使用uDig制作geoserver中需要的style
    [转]geoserver与OpenLayers配置入门
  • 原文地址:https://www.cnblogs.com/bjxsky/p/2818590.html
Copyright © 2011-2022 走看看