2014-05-19 42 views
0

我在MFC中編程並使用ADO連接到FoxPro .dbf文件。我正在讀取文件並製作數據庫文件的副本。在插入列類型爲'C'的數據即字符(儘管其長度爲10 byte.value是「0002」)我有問題。在字段中插入「0」。我可以將Column類型從'Character'更改爲'Memo',它插入正確的值但將數據保留在.FPT文件中。我需要將數據插入到相同的.dbf文件中.Any幫助將不勝感激。如何在foxpro dbf文件中插入列類型爲「字符」的值。

+0

你可以顯示你的插入語句嗎?另外,值是什麼樣子,你插入?如果該列只有10個字符,並且該值有超過10個前導空格,那麼這可能是問題所在?嘗試將值放入ALLTRIM()函數中,或者將字符列放大一些,大概爲200個字符。 – Jerry

+0

如果直接複製,使用文件系統複製DBF/CDX/FPT文件會不會更容易? –

+0

@jerry。我使用記錄集的AddNew()函數,它使用兩個參數,分別是字段名稱和數據的COleSafeArray; –

回答

1

默認情況下,在FoxPro中C類型列具有1的長度如果使用標準的SQL命令(ALTER TABLE)或類似SQL equilvalents(CREATE CURSOR),則需要改變一個簡單的「C」的數據類型以「C(10)」。

如果您是使用FoxPro的「SELECT INTO」語法創建數據副本,請注意庫會基於第一行推斷每列的大小。在這種情況下,您希望將「field1」設置爲C(10),但不要將該列定義爲field1`,而是將CAST(field1作爲C(10))作爲簡單的field1' but rather

+0

是的,我已經做到了,它工作。感謝你的回覆 –