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

使用VFP9遇到的問題
前往頁面 上一頁  1, 2, 3, 4  下一頁
 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
pilipala



註冊時間: 2009-05-13
文章: 75


第 16 樓

發表發表於: 星期五 五月 22, 2009 12:52 pm    文章主題: 引言回覆

維基上 VFP 9 SP2 Bug List ~~
http://fox.wikis.com/wc.dll?Wiki~VFP9SP2BugList~Wiki
回頂端
檢視會員個人資料 發送私人訊息
CCB2000



註冊時間: 2009-03-25
文章: 95


第 17 樓

發表發表於: 星期六 五月 23, 2009 8:03 pm    文章主題: 引言回覆

用VB或DELPHI寫個測試例子,確認是MSSQL的問題還是VFP的問題?
_________________
VFP C++編譯軟件 (VFP C++ Compiler): http://www.baiyujia.com/vfpcompiler
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 參觀發表人的個人網站
fschern



註冊時間: 2003-10-12
文章: 34


第 18 樓

發表發表於: 星期一 五月 25, 2009 9:28 pm    文章主題: 引言回覆

既然是使用sql2005,試試看將text欄位改用varchar(max)試試看能否解決問題.

我個人猜測試可能的原因如下:
一個可能是下載至client端時有部份字被載掉了,剛好最後一個中文字被截一半.
一個可能是sql server的內碼頁與vfp不同,導致自動轉碼時出現特殊字元.
一個可能是使用者是將excel(或word)的資料直接貼到vfp中,連特殊字元一起貼進來了...

不管那種原因都會造成下載的memo資料有特殊字元(內碼小於31或大於128),
在vfp9中開啟有特殊字元的memo欄時vfp9會當掉.
在vfp6中似乎會自動修正此類錯誤,所以vfp6不會當掉.
計算一段文字在sql上所需的欄位總長度時,必須將跳行(每個跳行佔兩個位元組)也要算進去,不要只算看得到的文字部份.
回頂端
檢視會員個人資料 發送私人訊息
catfish



註冊時間: 2003-05-29
文章: 45
來自: 台中

第 19 樓

發表發表於: 星期五 七月 31, 2009 2:26 pm    文章主題: 引言回覆

CCB2000 寫到:
用VB或DELPHI寫個測試例子,確認是MSSQL的問題還是VFP的問題?


是vfp9的問題,因為我用vfp6+sp5是不會有此情形的,vfp9則不管是sp1或sp2都會
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
catfish



註冊時間: 2003-05-29
文章: 45
來自: 台中

第 20 樓

發表發表於: 星期五 七月 31, 2009 2:56 pm    文章主題: 引言回覆

fschern 寫到:
既然是使用sql2005,試試看將text欄位改用varchar(max)試試看能否解決問題.

我個人猜測試可能的原因如下:
一個可能是下載至client端時有部份字被載掉了,剛好最後一個中文字被截一半.
一個可能是sql server的內碼頁與vfp不同,導致自動轉碼時出現特殊字元.
一個可能是使用者是將excel(或word)的資料直接貼到vfp中,連特殊字元一起貼進來了...

不管那種原因都會造成下載的memo資料有特殊字元(內碼小於31或大於128),
在vfp9中開啟有特殊字元的memo欄時vfp9會當掉.
在vfp6中似乎會自動修正此類錯誤,所以vfp6不會當掉.
計算一段文字在sql上所需的欄位總長度時,必須將跳行(每個跳行佔兩個位元組)也要算進去,不要只算看得到的文字部份.



已經將欄位型態改成varchar(max),還是照樣當!!
有沒有辦法將這些特殊字元先篩出來過濾掉,再存入或取出呢?
就像許功蓋的問題處理方法一樣....
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
saint



註冊時間: 2003-07-14
文章: 211


第 21 樓

發表發表於: 星期二 八月 04, 2009 6:48 am    文章主題: 引言回覆

太熱沒睡好,起來就看到這個問題,到現在還沒解決?
好久沒有寫VFP的CODE ,我在想會不會是ODBC 的 Driver 問題?
我先在WORD中產生出要的字元數,放到文字檔中,再取回。相同的東西也有在Form中依苦主的做法,放了Editbox 去做更新,都沒有出現你說的問題,如果再不行可能請苦主提供你的測試程式上來看看先了,我想。
代碼:

*--1.要執行前要先在ODBC中建立 DataSource
*--2.ODBC 要用 sql native client
*--3.就降
CLEAR ALL
CLOSE DATABASES ALL    
CLEAR
=SQLDISCONNECT(0)
LOCAL ln_handle as Integer,cmd as String ,ls_str as String
USE
ln_handle = SQLCONNECT("cd2140","apply","apply1234")
ss = FILETOSTR("d:\sql20001.TXT")
FOR i=1 TO 10
   ?i
   IF 0 > SQLEXEC(ln_handle,"update SCHOOL.DBO.PERSON set test = '" + ss +"' WHERE PERSONID=1") THEN
         DIMENSION la_err[1]      
         =AERROR(la_err)
         ?la_err[2]
         SUSPEND
   ENDIF
NEXT
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 MSN Messenger
catfish



註冊時間: 2003-05-29
文章: 45
來自: 台中

第 22 樓

發表發表於: 星期四 八月 13, 2009 4:53 pm    文章主題: 引言回覆

這邊的寫法我用的這樣:

ConnHandle = SQLStringConnect("Driver=Sql Server; Server=xxx.xxx.xx.xx; uid=XXXX; pwd=XXXXXX; database=XXXX; network=DBMSSOCN")

Driver應該是沒錯才對.....
我另外用個簡單的form來測測看好了~~
謝謝您!
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
catfish



註冊時間: 2003-05-29
文章: 45
來自: 台中

第 23 樓

發表發表於: 星期五 八月 14, 2009 5:55 pm    文章主題: 引言回覆

saint 寫到:
太熱沒睡好,起來就看到這個問題,到現在還沒解決?
好久沒有寫VFP的CODE ,我在想會不會是ODBC 的 Driver 問題?
我先在WORD中產生出要的字元數,放到文字檔中,再取回。相同的東西也有在Form中依苦主的做法,放了Editbox 去做更新,都沒有出現你說的問題,如果再不行可能請苦主提供你的測試程式上來看看先了,我想。
代碼:

*--1.要執行前要先在ODBC中建立 DataSource
*--2.ODBC 要用 sql native client
*--3.就降
CLEAR ALL
CLOSE DATABASES ALL    
CLEAR
=SQLDISCONNECT(0)
LOCAL ln_handle as Integer,cmd as String ,ls_str as String
USE
ln_handle = SQLCONNECT("cd2140","apply","apply1234")
ss = FILETOSTR("d:\sql20001.TXT")
FOR i=1 TO 10
   ?i
   IF 0 > SQLEXEC(ln_handle,"update SCHOOL.DBO.PERSON set test = '" + ss +"' WHERE PERSONID=1") THEN
         DIMENSION la_err[1]      
         =AERROR(la_err)
         ?la_err[2]
         SUSPEND
   ENDIF
NEXT


另外,可以請教您,是如何將2千多個中文字放到Editbox物件中的嗎?
我的作法是建立一個Shortcut,在裡面增加"貼上"(_med_paste)的Bar,
讓使用者在Editbox物件上按滑鼠右鍵貼上文字串.
另外請教,您是使用Visual Foxpro 9嗎?
因為我使用VFP6這個版本是不會有這個情形的!
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
saint



註冊時間: 2003-07-14
文章: 211


第 24 樓

發表發表於: 星期六 八月 15, 2009 11:15 pm    文章主題: 引言回覆

Q:您是使用Visual Foxpro 9嗎?
A:Yes
Q:可以請教您,是如何將2千多個中文字放到Editbox物件中的嗎?
A:在WORD 中 COPY 再貼上去文字檔中,在 Form.Init 中用 THIS.EDit1.Value = FILETOSTR("d:\sql20001.TXT")
還是你要提供你的測試程式上來玩看看
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 MSN Messenger
catfish



註冊時間: 2003-05-29
文章: 45
來自: 台中

第 25 樓

發表發表於: 星期一 八月 17, 2009 2:15 pm    文章主題: 引言回覆

saint 寫到:
Q:您是使用Visual Foxpro 9嗎?
A:Yes
Q:可以請教您,是如何將2千多個中文字放到Editbox物件中的嗎?
A:在WORD 中 COPY 再貼上去文字檔中,在 Form.Init 中用 THIS.EDit1.Value = FILETOSTR("d:\sql20001.TXT")
還是你要提供你的測試程式上來玩看看


我是直接將2千多個中文字貼到editbox物件中,但是我試過用您的方法讀入文字檔內容,儲存後不會有問題,但關掉再開一次form時就當了,到Sql Server中查看該記錄,欄位值中尾部一些字被截掉了.
我要如何上傳程式,是將程式碼貼上來嗎?
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
catfish



註冊時間: 2003-05-29
文章: 45
來自: 台中

第 26 樓

發表發表於: 星期一 八月 17, 2009 2:54 pm    文章主題: 引言回覆

[quote="catfish"]
saint 寫到:
Q:您是使用Visual Foxpro 9嗎?
A:Yes
Q:可以請教您,是如何將2千多個中文字放到Editbox物件中的嗎?
A:在WORD 中 COPY 再貼上去文字檔中,在 Form.Init 中用 THIS.EDit1.Value = FILETOSTR("d:\sql20001.TXT")
還是你要提供你的測試程式上來玩看看



以下是開啟檔案的程式:

if used('rv_emp_test')
USE IN rv_emp_test
endif

cliptext = "select * from emp_test order by test_no"

result = sqlexec(ConnHandle,cliptext,'rv_emp_test')
if result < 0
= messagebox("存取測試檔案錯誤!!"+chr(13)+chr(13)+"請洽程式設計人員...",0+16,"存取錯誤")
return
endif

select rv_emp_test
declare FieldList[1]
FieldCount = afield(FieldList)
m_field = ''
m_sqlfield = ''
for i = 1 to FieldCount
m_field = m_field + FieldList[i,1]+','
m_sqlfield = m_sqlfield + FieldList[i,1]+' emp_test.'+ FieldList[i,1]+','
endfor
m_field = left(m_field,len(m_field)-1)
m_sqlfield = left(m_sqlfield,len(m_sqlfield)-1)
=cursorsetprop('buffering',5)
=cursorsetprop('tables','emp_test')
=cursorsetprop('keyfieldlist','test_no')
=cursorsetprop('updatablefieldlist',m_field)
=cursorsetprop('updatenamelist',m_sqlfield)
=cursorsetprop('sendupdates',.t.)

以下是回存的程式:

result = tableupdate(1,.t.,'rv_emp_test')
if result = .f.
= MESSAGEBOX("更新失敗!!")
thisform.refresh()
return
endif
thisform.refresh()
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
saint



註冊時間: 2003-07-14
文章: 211


第 27 樓

發表發表於: 星期二 八月 18, 2009 12:38 am    文章主題: 引言回覆

附上程式碼!基本上我用你提供的程式在 GET 、SAVE 這兩個BUTTON 都可以,沒問題。如果再不行,你可能要提供更多資訊。哦..我的還沒有更新到SP2,因為原始檔不知去那了..XD
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 MSN Messenger
catfish



註冊時間: 2003-05-29
文章: 45
來自: 台中

第 28 樓

發表發表於: 星期二 八月 18, 2009 3:41 pm    文章主題: 引言回覆

saint 寫到:
附上程式碼!基本上我用你提供的程式在 GET 、SAVE 這兩個BUTTON 都可以,沒問題。如果再不行,你可能要提供更多資訊。哦..我的還沒有更新到SP2,因為原始檔不知去那了..XD


您的程式我在執行寫入文字檔到editbox物件及回存時是ok的!
但當我重新對該欄位作異動,再回存就會當了!
到資料庫的table中查看,一樣是到某些固定字數就被截斷了,
會是SQL Server或VFP的環境有需要特別設定什麼嗎?
附上我的程式專案檔,麻煩您了!
我的資料庫是用SQL Server 2005.
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
catfish



註冊時間: 2003-05-29
文章: 45
來自: 台中

第 29 樓

發表發表於: 星期二 八月 18, 2009 3:43 pm    文章主題: 引言回覆

saint 寫到:
附上程式碼!基本上我用你提供的程式在 GET 、SAVE 這兩個BUTTON 都可以,沒問題。如果再不行,你可能要提供更多資訊。哦..我的還沒有更新到SP2,因為原始檔不知去那了..XD


另外,有我測試過,不管有沒有更新到SP2,都是會當機的,
所以用VFP9或VFP9 SP1來測都可以吧!
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
saint



註冊時間: 2003-07-14
文章: 211


第 30 樓

發表發表於: 星期四 八月 20, 2009 6:18 pm    文章主題: 引言回覆

Catfish可以提供你DB的Schema 嗎..?不然沒有一致的環境也,我是用SQL 2005 express
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 MSN Messenger
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
前往頁面 上一頁  1, 2, 3, 4  下一頁
2頁(共4頁)

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


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