2013-10-04 2 views
1

Я работаю над приложением Delphi XE5 Firemonkey Mobil.Обновление bindsource и listview

Я использую FireDac для подключения.

Просто попробуйте сделать простой запрос вставить в базу данных sQlite и обновить список с помощью вставленной информации.

procedure TTabbedwithNavigationForm.Button4Click(Sender: TObject); 
    begin 

    DataModule1.qSelectCustomers.SQL.Text := 'insert into Invoice (Name) values(:newName)'; 
    DataModule1.qSelectCustomers.ParamByName('newName').AsString := 'test'; 
    DataModule1.qSelectCustomers.ExecSQL; 
    BindSourceDB1.DataSet.Refresh; 
    ////LinkFillControlToField1.BindList.FillList; 
    end; 

Моя проблема в том, что я получаю ошибку. Ошибка: = TFDQuery: не удается выполнить эту операцию на закрытом наборе данных. Я попытался открыть набор дат, но не пошел. Почему это не сработает?

+0

Почему вы с помощью SELECT, запрос INSERT? Используйте отдельный запрос для вставки и один для удаления. См. Образец в папке «Снимок мобильных кодов FireMonkey» (это демонстрационная версия FireDACSQLLite). –

ответ

3

Вы можете вставить запись в наборе данных с запросом на выборку, как это:

DataModule1.qSelectCustomers.SQL.Text := 'SELECT * FROM Invoice'; 
DataModuel1.qSelectCustomers.Active := True; 
DataModule1.qSelectCustomers.Append; 
DataModule1.qSelectCustomers.FieldByName('Name').Value := 'test'; 
DataModule1.qSelectCustomers.Post; 
+0

Спасибо за помощь, это отлично работает. – grant1842