2010-01-19 89 views
0

我很努力地將數據插入TDataSourse鏈接到網格的TdxMemData。 MemData-called PurchaseData-有3列:日期(日期),地點(字符串)和值(貨幣)。 我有一個按鈕,執行以下操作:如何在Borland Builder中將數據插入到TdxMemData中

PurchaseData->Insert(); 
PurchaseData->FieldByName("Date")->Value = TDateTime::CurrentDate().DateString(); 
PurchaseData->FieldByName("Place")->Value = ""; 
PurchaseData->FieldByName("Value")->Value = 0.0f; 
PurchaseData->Post(); 

點擊一次,它通常插入行和數據出現在網格的新行,但再次點擊該按鈕時,我上插入一個彈出()說「無法將類型的變體(Null)轉換爲類型(String)」。

我擔心列的屬性「KeyFields」在組合字段中顯示除了其他3個字段之外的字段「RecId」。我不記得創建任何名爲RecId的列,如果我做了,我將其刪除。我無法弄清楚它是什麼,也找不到幫助。

回答

0

我已經映射網格的事件OnSelectionChanged並讀取新選擇的行中的數據。不幸的是,當調用PurchaseData-> Insert()時,SelectionChanged事件立即被觸發。在新行的數據由下一行設置之前。我從數據讀取中得到Null,並用它做了壞事情,比如設置一個edit-> Text,然後彈出消息。

0

我不是在現在來測試這個權利,但一個地方將其更改爲這可能工作

PurPurchaseData-> FieldByName(「地方」) - >值=字符串(「」);

如果這不起作用,它將以您設置專欄的方式進行。

+0

既不是絃樂也不AnsiString工作/:感謝嘗試! – Gabriel 2010-01-19 19:08:00

相關問題