上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
MyFox
註冊時間: 2008-03-04 文章: 13
第 1 樓
|
發表於: 星期五 四月 18, 2008 9:49 pm 文章主題: 轉SQL 2000 ,字串有問題 >.<" |
|
|
小弟將 SQL Server 2000 的資料表
轉成 FoxPro 的DBF
C_SQL = "SELECT * FROM abc"
=SQLEXEC(L_lLnk, C_SQL, "Cabc")
USE Mydbf EXCL IN 0
SELECT Mydbf
ZAP
C_MyData = Cabc.a欄位
SELECT Cabc
SCAN
APPEND BLANK
REPLACE b欄位 WITH C_MyData
-----------------------------------------------------------------
將Cabc,Browse出來的時候,很清楚看到要轉換的A欄位,
裡面的字串都有成功一字部漏轉換過來。(a欄位有128個英文字)
問題來了!!!
但是將字串Appemd欄位後,發現怎麼才存30個字元>.<"
我的b欄位有128個字元,小弟我有測過直接用一串"1~~~128",
存到那個欄位,也沒問題能存128個字元。
-----------------------------------------------------------------
但為什麼我始終只存到30個字元?
難道變數只能儲存30個字元嗎>.<?
但小弟測試過直接 WITH Cabc.a欄位還是一樣,只有30個位元 >.<
小弟用的版本
Microsoft Visual FoxPro 6.0
MyFox 在 星期五 四月 18, 2008 9:57 pm 作了第 2 次修改 |
|
回頂端 |
|
 |
MyFox
註冊時間: 2008-03-04 文章: 13
第 2 樓
|
發表於: 星期五 四月 18, 2008 9:53 pm 文章主題: Re: 轉SQL 2000 ,字串有問題 >.<" |
|
|
.編輯錯誤._. |
|
回頂端 |
|
 |
garfield Site Admin

註冊時間: 2003-01-30 文章: 2160
第 3 樓
|
發表於: 星期五 四月 18, 2008 10:51 pm 文章主題: |
|
|
不說還不知道你已經改了兩次, 還真的是"一字部漏轉換過來...".
看起來問題出在 C_MyData = Cabc.a欄位
依所看到的程式, 你會將所有的cabc.b欄位的內容改成 第一筆資料裡的a欄位.
去查看看第一筆資料裡的a欄位內容是否有問題. _________________ 利用>>搜尋<<的功能會比問的還要快得到答案. |
|
回頂端 |
|
 |
MyFox
註冊時間: 2008-03-04 文章: 13
第 4 樓
|
發表於: 星期六 四月 19, 2008 1:15 pm 文章主題: |
|
|
garfield 寫到: | 不說還不知道你已經改了兩次, 還真的是"一字部漏轉換過來...".
看起來問題出在 C_MyData = Cabc.a欄位
依所看到的程式, 你會將所有的cabc.b欄位的內容改成 第一筆資料裡的a欄位.
去查看看第一筆資料裡的a欄位內容是否有問題. |
對不起~小弟眼瞎,今天BROWSE起來在看一次,
原來轉出來的時候就只有30字元>"<
因為SQL SERVER 2000 ,那個欄位型態是nVARCHAR,FOXPRO好像看不懂._.
可是我有在SELECT的時候已經順便宣告了!
CAST(別名.欄位 AS VARCHAR) AS C_欄位
但是還是只抓的到前面30個字元><".....
我測試的感覺好像是VARCHAR型態只能存30字元?
.... 有解決方法嗎? |
|
回頂端 |
|
 |
nelsonchuang
註冊時間: 2003-09-04 文章: 563 來自: 臺灣
第 5 樓
|
發表於: 星期六 四月 19, 2008 3:23 pm 文章主題: |
|
|
程式本身就有問題... _________________ 大家好,請多指教 |
|
回頂端 |
|
 |
MyFox
註冊時間: 2008-03-04 文章: 13
第 6 樓
|
發表於: 星期六 四月 19, 2008 11:31 pm 文章主題: |
|
|
nelsonchuang 寫到: | 程式本身就有問題... |
我不懂程式本身有問題,是哪邊有錯嗎>.<?
-----------------------------------------------------------------------------
SQL SERVER 2000 ,要轉的那個欄位型態是nVARCHAR,FOXPRO好像看不懂._.
其他欄位有nVARCHAR 型態,如欄位只有 "10" 碼,
不宣告成VARCHAR 型態,轉出來都會變成 " 9" 碼。
所以小弟才將他轉換成VARCHAR 型態了。
可是又發現新問題,為什麼只會抓到前30碼。
小弟就是不知道問題點才來求助。
想請問到底是哪邊的問題ˊ.ˋ,可以給個提示嗎? |
|
回頂端 |
|
 |
nelsonchuang
註冊時間: 2003-09-04 文章: 563 來自: 臺灣
第 7 樓
|
發表於: 星期日 四月 20, 2008 1:57 pm 文章主題: |
|
|
你試著逐行追蹤除錯,就知道問題在哪了~ _________________ 大家好,請多指教 |
|
回頂端 |
|
 |
MyFox
註冊時間: 2008-03-04 文章: 13
第 8 樓
|
發表於: 星期一 四月 21, 2008 8:14 am 文章主題: |
|
|
nelsonchuang 寫到: | 你試著逐行追蹤除錯,就知道問題在哪了~ |
C_SQL = "SELECT CAST(欄位 AS VARCHAR) AS C_欄位 FROM abc"
=SQLEXEC(L_lLnk, C_SQL, "Cabc")
SELECT Cabc
BROWSE
語法沒錯啊=.=?
問題就在這邊啊,我browse出來 那個欄位不知道為什麼就只有抓到30碼 |
|
回頂端 |
|
 |
nelsonchuang
註冊時間: 2003-09-04 文章: 563 來自: 臺灣
第 9 樓
|
發表於: 星期一 四月 21, 2008 8:53 am 文章主題: |
|
|
Select ISNULL(欄位,CONVERT(VARCHAR(128),'') ) AS C_欄位
先去查一下你的 Set memo 的寬度是多少? _________________ 大家好,請多指教 |
|
回頂端 |
|
 |
syntech
註冊時間: 2003-05-16 文章: 4249 來自: Taipei,Taiwan
第 10 樓
|
發表於: 星期一 四月 21, 2008 8:57 am 文章主題: |
|
|
請盡量使用 char 型態.
vfp 9 才開始支援 非unicode 的 varChar 型態 _________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
 |
|