VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

轉SQL 2000 ,字串有問題 >.<"

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
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. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作