<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    xhchc

    危波帆墻,笑談只在桃花上;與誰共尚,風吹萬里浪; 相依相偎,不做黃泉想;莫惆悵,碧波潮生,一蕭自狂放……

     

    通過java動態創建ODBC數據源來訪問DBF文件(轉)

     

    【賽迪網-IT技術報道】好久沒有使用過VFP了,記憶中似乎也只是在學校中使用過。這次出差,客戶給了一大堆dbf文件,要求處理。

    無奈啊,顧客就是上帝。雖然可以通過許多途徑來處理,但是總想用java語言來處理。最終還是需要通過JNI來處理,不過用到了一個開元的操作注冊表的registry-3.1.3,使用后,發現蠻簡單的,網上已有很多資料介紹,就不多說了。

    想了兩種解決方法,第一種比較麻煩,但是看網上很多人問,就也總結了出來,其實就是通過java動態創建ODBC數據源來訪問DBF文件,這個就需要用到registry,來修改注冊表了。

    其實,主要是動態創建ODBC數據源,開始很簡單,可以手工設置一次數據源,當然也可以通過程序直接生成,問題都不大。下面只說怎樣修改。

    import com.ice.jni.registry.RegStringValue;
                import com.ice.jni.registry.Registry;
                import com.ice.jni.registry.RegistryKey;

    public class TestC {
                public static void main(String[] str) {
                try {
                RegistryKey child = Registry.HKEY_CURRENT_USER
                .openSubKey("Software").openSubKey("ODBC").openSubKey
                ("ODBC.INI").openSubKey("data_0930",RegistryKey.ACCESS_ALL);//
                操作權限是通過RegistryKey來獲取的。
                String de = "F:\\commony\\test\\data\\070901";  //
                我的DBF數據的目錄//其中,data_0930是我第一次設置的數據源的一個注冊表的名稱
                System.out.println(child.getStringValue("SourceDB"));
                child.setValue(new RegStringValue(child,"SourceDB",de));
                System.out.println(child.getFullName());
                } catch (Exception e) {
                e.printStackTrace();
                }
                }
                }

    然后就是通過,sun.jdbc.odbc.JdbcOdbcDriver來獲取數據,

    import java.sql.DriverManager;
                import java.sql.*;
                public class TestOdbc {
                public TestOdbc() {
                }
                public static void main(String[] args) {
                java.sql.Connection conn = null;
                java.sql.PreparedStatement pt = null;
                java.sql.ResultSet rs = null;
                try {
                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                }
                catch (ClassNotFoundException ex1) {
                }
                try {
                conn = DriverManager.getConnection("jdbc:odbc:data_0930", "", "");
                pt = conn.prepareStatement(" select *  from test_table");
                rs = pt.executeQuery();
                while(rs.next()){
                System.out.println("==="+rs.getString(1));
                System.out.println("==="+rs.getString(2));
                System.out.println("==="+rs.getString(3));
                System.out.println("==="+rs.getString(4));
                System.out.println("==="+rs.getString(5));
                }
                }
                catch (SQLException ex) {
                }
                }
                }

    其實真的很簡單。

    其實,文件名,是可以動態獲取的,一般可以通過java中的File類來獲取:

    import java.io.File;
                public class TestD {
                public static void main(String[] args){
                File file = new File("F:\\commony\\test\\data");
                File[] df = file.listFiles();
                for(int k =0;k   if(df[k].isDirectory()){ //
                因為文件夾中包含DBF文件,所以判斷是文件夾,而不是文件
                System.out.println("===kkkk=="+k+"====="+df[k].getName());
                }
                }
                }
                }

    第一種就是這樣,需要注意的是registry的使用,其實很簡單的,只要把DLL文件放到classpath下就可以了。

    第二種其實更簡單,就是通過另一個開元的類包jdbf.jar,使用方法也很簡單,網上有很多資料,可以查詢。也就不多說了。

    posted on 2009-01-08 14:16 chu 閱讀(170) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    導航

    統計

    常用鏈接

    留言簿(2)

    隨筆檔案

    我的鏈接

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 日韩在线免费电影| 免费国产美女爽到喷出水来视频| 男人都懂www深夜免费网站| 亚在线观看免费视频入口| 歪歪漫画在线观看官网免费阅读 | 最近2019免费中文字幕6| 最近中文字幕无吗高清免费视频| 日本免费网站观看| 国产亚洲人成在线播放| 巨胸喷奶水视频www免费视频| 国产午夜精品久久久久免费视 | 久久国产福利免费| 国产成人无码免费看视频软件| 亚洲天堂中文字幕在线观看| 美女视频黄频a免费观看| 久久久久免费看成人影片| 免费看国产曰批40分钟| 亚洲欧洲精品在线| 一级毛片免费不卡直观看| 亚洲性线免费观看视频成熟| 在线播放亚洲第一字幕| 亚洲av无码专区首页| 亚洲成年人免费网站| 亚洲精品乱码久久久久久| 亚洲无人区码一二三码区别图片| 男女一边摸一边做爽的免费视频| 亚洲乱亚洲乱妇无码麻豆| 曰批全过程免费视频观看免费软件 | 日本特黄特色AAA大片免费| 亚洲精品乱码久久久久久中文字幕| 免费毛片a线观看| 亚洲国产av高清无码| 无码专区AAAAAA免费视频| 亚洲人成伊人成综合网久久| 四虎永久免费影院在线| 国产在线观看无码免费视频| 亚洲日本国产精华液| 亚洲AV无码一区二区三区国产| 亚洲熟妇少妇任你躁在线观看| 亚洲男人的天堂在线va拉文| 亚洲AV色欲色欲WWW|