|
VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
|
上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
saint
註冊時間: 2003-07-14 文章: 211
第 31 樓
|
發表於: 星期四 八月 20, 2009 6:41 pm 文章主題: |
|
|
這是我的TABLE SCHEMA。用你的程式沒有問題呀...我上回有提過會不會是你的ODBC DRIVER 錯了.你有查過了嗎?
代碼: |
USE [APPLY]
GO
/****** 物件: Table [dbo].[emp_test] 指令碼日期: 08/20/2009 18:39:44 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[emp_test](
[test_no] [int] NOT NULL,
[test_text] [text] COLLATE Chinese_Taiwan_Stroke_CI_AS NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
|
|
|
回頂端 |
|
|
catfish
註冊時間: 2003-05-29 文章: 45 來自: 台中
第 32 樓
|
發表於: 星期五 八月 21, 2009 6:06 pm 文章主題: |
|
|
saint 寫到: | 這是我的TABLE SCHEMA。用你的程式沒有問題呀...我上回有提過會不會是你的ODBC DRIVER 錯了.你有查過了嗎?
代碼: |
USE [APPLY]
GO
/****** 物件: Table [dbo].[emp_test] 指令碼日期: 08/20/2009 18:39:44 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[emp_test](
[test_no] [int] NOT NULL,
[test_text] [text] COLLATE Chinese_Taiwan_Stroke_CI_AS NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
|
|
抱歉! 今天工作比較忙,晚了些回覆,
以下是我的table schema
==================================
USE [Employ]
GO
/****** 物件: Table [dbo].[emp_test] 指令碼日期: 08/21/2009 17:52:02 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[emp_test](
[test_no] [char](1) NOT NULL CONSTRAINT [DF_emp_test_test_no] DEFAULT (''),
[test_text] [text] NOT NULL CONSTRAINT [DF_emp_test_test_text] DEFAULT ('')
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
SET ANSI_PADDING OFF
================================== |
|
回頂端 |
|
|
saint
註冊時間: 2003-07-14 文章: 211
第 33 樓
|
發表於: 星期一 八月 24, 2009 11:38 am 文章主題: |
|
|
catfish
這差在那..看來是一樣的呀.. |
|
回頂端 |
|
|
catfish
註冊時間: 2003-05-29 文章: 45 來自: 台中
第 34 樓
|
發表於: 星期一 八月 24, 2009 2:56 pm 文章主題: |
|
|
saint 寫到: | catfish
這差在那..看來是一樣的呀.. |
所以我才會說找不出問題在哪裡呀~~
我在想會不會是這個設定的問題: Chinese_Taiwan_Stroke_CI_AS
當初同仁在安裝SQL Server時有稍微討論了一下,
但時間很久了,有一點不太記得,只記得好像跟語系有一點關係....
另外,我想也不會是ODBC driver有錯,
因為同樣的程式在VFP6中跑起來完全不會有當機情形,
我是直接拿VFP9的程式,放在VFP6環境中跑,
沒再改任何程式了!
還是很謝謝你! |
|
回頂端 |
|
|
saint
註冊時間: 2003-07-14 文章: 211
第 35 樓
|
發表於: 星期三 八月 26, 2009 3:53 pm 文章主題: |
|
|
可惜你在台中..不然就可以找時間去你那看看..^^ |
|
回頂端 |
|
|
catfish
註冊時間: 2003-05-29 文章: 45 來自: 台中
第 36 樓
|
發表於: 星期三 八月 26, 2009 4:01 pm 文章主題: |
|
|
saint 寫到: | 可惜你在台中..不然就可以找時間去你那看看..^^ |
請教一下,你是在台北嗎?
另外,VFP9用的ODBC driver有什麼特殊版本的限制嗎? |
|
回頂端 |
|
|
syntech
註冊時間: 2003-05-16 文章: 4212 來自: Taipei,Taiwan
第 37 樓
|
發表於: 星期三 八月 26, 2009 4:54 pm 文章主題: |
|
|
ODBC DRIVER 只出到 VFP 6 ,
OLE DB DRIVER 才是出到 VFP 9
===
要糾團去搞嗎? XD _________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
|
catfish
註冊時間: 2003-05-29 文章: 45 來自: 台中
第 38 樓
|
發表於: 星期三 八月 26, 2009 5:33 pm 文章主題: |
|
|
saint 寫到: | 可惜你在台中..不然就可以找時間去你那看看..^^ |
請問Saint兄,你寫入Editbox欄位中的中文字有超過2060個中文字嗎?因為我到SQL Server中查看欄位內容寫入狀況,大多被截斷在第2060個字左右,後面的中文字就沒再寫進來了!
我如果在SQL Server中將欄位值剩下的2060個中文字刪掉2個中文字,之後再從VFP9的Form中開啟,就不會當了!
我目前想到的解決方法就是檢查使用者輸入的字數,然後提出警告,但這實在不是很妥當的方法.... |
|
回頂端 |
|
|
catfish
註冊時間: 2003-05-29 文章: 45 來自: 台中
第 39 樓
|
發表於: 星期五 八月 28, 2009 4:51 pm 文章主題: |
|
|
[quote="catfish"] saint 寫到: | 可惜你在台中..不然就可以找時間去你那看看..^^ |
今天找了台電腦安裝VFP8,更新到sp1,
用相同的文字檔進行測試,並沒有發生當機的情形,
我想應該是VFP9的bug吧!
VFP9在經過sp2後,還有其他小部分的更新要做嗎? |
|
回頂端 |
|
|
catfish
註冊時間: 2003-05-29 文章: 45 來自: 台中
第 40 樓
|
發表於: 星期五 九月 11, 2009 4:10 pm 文章主題: |
|
|
我試著將LEN()>40000的內容分割成兩個欄位回存,在擷取時再合併於同一editbox上,結果還是會當!
但如果是以editbox顯示str1(1~4000個字元),就可以正常show出來,
而用editbox顯示str2(4001以後的字元)時反而當掉了,僅管str2只有二十幾個字元....
另外,如果是以RichText取代editbox,在顯示資料上就不會當掉,
但RichText可設定的屬性及方法實在太少,也不合用~~ |
|
回頂端 |
|
|
fschern
註冊時間: 2003-10-12 文章: 34
第 41 樓
|
發表於: 星期日 九月 13, 2009 1:39 pm 文章主題: |
|
|
一、依照您的問題描述,我個人猜測原因如下:
您的VFP程式將中文資料存入SQL時,因為文字總數超過欄位長度限制(或是其他原因)而被截斷,而截斷的位置剛好是某個中文字的一半,所以存入SQL的資料之最後一個字變成了一個特殊字元。
當將該被截斷的資料下載至VFP時若是存在MEMO欄位中,則在VFP6時開啟該MEMO欄不會有問題,但VFP9則會產生當機的現象。
若被截掉的位置剛好不會產生特殊字元時,則就不會產生當機現象。
二、您既然是使用SQL2005,建議您將欄位型態"TEXT"者改為"VARCHAR(MAX)",程式會比較好寫,問題也比較少。 |
|
回頂端 |
|
|
saint
註冊時間: 2003-07-14 文章: 211
第 42 樓
|
發表於: 星期二 九月 15, 2009 5:02 pm 文章主題: |
|
|
catfish 寫到: | saint 寫到: | 可惜你在台中..不然就可以找時間去你那看看..^^ |
請教一下,你是在台北嗎?
另外,VFP9用的ODBC driver有什麼特殊版本的限制嗎? |
我是住台北 |
|
回頂端 |
|
|
saint
註冊時間: 2003-07-14 文章: 211
第 43 樓
|
發表於: 星期二 九月 15, 2009 5:04 pm 文章主題: |
|
|
SP1
查了一下google 也有人遇到相同的問題,但是文中說是在 VFP9 SP1 就解決了,可是你升到SP2,難不成SP2又把它蓋過去了...= =" |
|
回頂端 |
|
|
catfish
註冊時間: 2003-05-29 文章: 45 來自: 台中
第 44 樓
|
發表於: 星期三 九月 16, 2009 2:43 pm 文章主題: |
|
|
fschern 寫到: | 一、依照您的問題描述,我個人猜測原因如下:
您的VFP程式將中文資料存入SQL時,因為文字總數超過欄位長度限制(或是其他原因)而被截斷,而截斷的位置剛好是某個中文字的一半,所以存入SQL的資料之最後一個字變成了一個特殊字元。
當將該被截斷的資料下載至VFP時若是存在MEMO欄位中,則在VFP6時開啟該MEMO欄不會有問題,但VFP9則會產生當機的現象。
若被截掉的位置剛好不會產生特殊字元時,則就不會產生當機現象。
二、您既然是使用SQL2005,建議您將欄位型態"TEXT"者改為"VARCHAR(MAX)",程式會比較好寫,問題也比較少。 |
VARCHAR(MAX)型態我有試過,但還是會當耶! |
|
回頂端 |
|
|
catfish
註冊時間: 2003-05-29 文章: 45 來自: 台中
第 45 樓
|
發表於: 星期三 九月 16, 2009 2:44 pm 文章主題: |
|
|
saint 寫到: | SP1
查了一下google 也有人遇到相同的問題,但是文中說是在 VFP9 SP1 就解決了,可是你升到SP2,難不成SP2又把它蓋過去了...= =" |
沒有,我有試過用原裝VFP9只升級到sp1,但還是會當!
VFP6 sp5及VFP8這兩個版本則ok! |
|
回頂端 |
|
|
|
|
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
|
|