none
SQL SERVER 2008 的資料轉成TXT文字檔 RRS feed

  • 問題

  • HI~

    我現在有個需求是這樣的

    我想要透過一個按鈕直接將資料庫(SQL SERVER 2008)的某個資料表的資料全部轉成TXT文字檔

    然後每個欄位要寫出固定的寬度(欄位長度),不是以,區分

    不知道有什麼方式可以做呢?

    PS.資料量滿大的

    謝謝

    2012年10月26日 上午 05:40

解答

  • 版主你好

    我需要的是透過自己寫程式去轉

    我現在用的方式是把資料讀出來

    然後一行一行寫,但是,我只能做到用','區分欄位

    不知道要如何寫固定的寬度?

    另外,我覺得目前的做法這還滿土法煉鋼的,不知道還有沒有其他方式?

    我的疑問是, 如果是轉文字檔, 固定寬度我可以理解, 因為你們可能有個工具是從 txt 轉到 DBF 時是用固定長度判斷, 要是直接轉 DBF 應該是不需要固定寬度了吧 ?

    如果要寫程式轉 DBF, 其實和存取 MS SQL 差不多, 首先你可以先建立一個 DBF 檔, 將資料欄位建立好

    然後從 SQL 讀出資料, 再轉存到該 DBF 不就行了 ?

    http://stackoverflow.com/questions/4049891/how-do-i-read-a-foxpro-8-0-database-from-c

    這邊有個連接 Foxpro 讀取資料的例子, 看完你也知道怎麼寫入了 (我假設你問的不是 DBase 的 DBF , DBase 可能要用 ODBC)

    如果你是要存到 FoxPro 中的 DBF, 其實用 FoxPro 寫應該也行 (我早期用 FoxPro 連過 SQL 2000, 以後的版本就不瞭解了).

    而且用 FoxPro 寫很快, 它可以直接設定就拉 SQL 的資料進來, 然後迴圈, Insert 就好了 .


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2012年10月26日 上午 09:04
    版主

所有回覆

  • 寫成CSV檔或Excel檔就好了,一格一格排的漂漂亮亮。

    理直氣和,切記。

    http://blog.kkbruce.net

    2012年10月26日 上午 05:49
  • 或者 SQL 的資料可以直接轉成 DBF 嗎?

    因為我最終要把檔案轉成 DBF

    2012年10月26日 上午 05:56
  • 可是 EXCEL 好像有筆數的限制

    我轉換的資料量很大

    2012年10月26日 上午 05:58
  • DBConvert for FoxPro & MS SQL

    這個有用嗎 ?


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    • 已提議為解答 KKBruceMVP 2012年10月26日 上午 07:00
    2012年10月26日 上午 06:30
    版主
  • 版主你好

    我需要的是透過自己寫程式去轉

    我現在用的方式是把資料讀出來

    然後一行一行寫,但是,我只能做到用','區分欄位

    不知道要如何寫固定的寬度?

    另外,我覺得目前的做法這還滿土法煉鋼的,不知道還有沒有其他方式?

    2012年10月26日 上午 06:45
  • 您好,
    小弟有以下2個想法,給您參考看看,
    1.建立一個Temp Table,欄位是用NCHAR,然後將取出的資料放進那個Temp Table之中,這樣您取出來的資料長度自然就都相同。
    2.直接取出資料,然後在一筆筆輸出資料時,使用String.PadLeft or String.PadRight 方式去補空白。

    以上說明若有錯誤請指教,謝謝。
    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/

    2012年10月26日 上午 06:59
  • 如果你的資料量會大到連Excel都放不下,就用工具去轉換吧。


    理直氣和,切記。

    http://blog.kkbruce.net

    2012年10月26日 上午 07:03
  • 版主你好

    我需要的是透過自己寫程式去轉

    我現在用的方式是把資料讀出來

    然後一行一行寫,但是,我只能做到用','區分欄位

    不知道要如何寫固定的寬度?

    另外,我覺得目前的做法這還滿土法煉鋼的,不知道還有沒有其他方式?

    我的疑問是, 如果是轉文字檔, 固定寬度我可以理解, 因為你們可能有個工具是從 txt 轉到 DBF 時是用固定長度判斷, 要是直接轉 DBF 應該是不需要固定寬度了吧 ?

    如果要寫程式轉 DBF, 其實和存取 MS SQL 差不多, 首先你可以先建立一個 DBF 檔, 將資料欄位建立好

    然後從 SQL 讀出資料, 再轉存到該 DBF 不就行了 ?

    http://stackoverflow.com/questions/4049891/how-do-i-read-a-foxpro-8-0-database-from-c

    這邊有個連接 Foxpro 讀取資料的例子, 看完你也知道怎麼寫入了 (我假設你問的不是 DBase 的 DBF , DBase 可能要用 ODBC)

    如果你是要存到 FoxPro 中的 DBF, 其實用 FoxPro 寫應該也行 (我早期用 FoxPro 連過 SQL 2000, 以後的版本就不瞭解了).

    而且用 FoxPro 寫很快, 它可以直接設定就拉 SQL 的資料進來, 然後迴圈, Insert 就好了 .


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2012年10月26日 上午 09:04
    版主
  • In 子句的使用範例

    論壇是網友平等互助 保證解答請至 微軟技術支援服務


    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。

    2012年10月26日 下午 01:09
  • 您好,
    請試看看,

    SELECT SQL query INTO DBF file?

    DBF表与SQL表的导入、导出

    Visual FoxPro Downloads


    以上說明若有錯誤請指教,謝謝。
    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/

    2012年10月27日 上午 03:46
  • 這問題解決了嗎 ? 可否回覆一下狀況 ?

    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2012年11月9日 下午 06:26
    版主