Как вставить данные в TdxMemData в Borland Builder - PullRequest
0 голосов
/ 19 января 2010

Я изо всех сил пытаюсь вставить данные в TdxMemData, который связан с сеткой TDataSourse. MemData, называемая PurchaseData, имеет 3 столбца: дата (дата), место (строка) и значение (валюта). У меня есть кнопка, которая делает следующее:

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

При щелчке один раз строка вставляется обычным образом, и данные появляются в новой строке сетки, но при повторном нажатии кнопки появляется всплывающее окно «Вставка ()» со словами «Не удалось преобразовать вариант типа (Null) в type (String) ".

Меня беспокоит тот факт, что свойство "KeyFields" столбцов показывает в своем комбо поле поле "RecId" помимо трех других полей. Я не помню, чтобы создавался какой-либо столбец с именем RecId, и если я это сделал, я удалил его. Я не могу понять, что это такое, и не смог найти помощи.

Ответы [ 2 ]

0 голосов
/ 19 января 2010

Я отобразил событие OnSelectionChanged сетки и прочитал данные во вновь выбранной строке. К сожалению, при вызове PurchaseData-> Insert () событие SelectionChanged запускается сразу. до того, как данные новой строки будут установлены следующими строками. Я получил Null из прочитанных данных и сделал с ним «плохие вещи», как установив с ним edit-> Text, таким образом сообщение во всплывающем окне.

0 голосов
/ 19 января 2010

Я не в месте, чтобы проверить это прямо сейчас, но изменение его на это может работать

PurPurchaseData-> FieldByName ("Place") -> Value = String ("");

если это не сработает, все будет так, как вы настроили свои столбцы.

...