Delphi i baza danych błąd InsertData: Cursor not returned

0

Probowałem zrobić podobnie do tego artykułu MySQL w Delphi dodawanie do bazy danych nowych elementów.
InsertData jest obiektem typu TSQLDataSet.
Najpierw w InsertData ustawiam zapytanie sqlowe które doda nową pozycję do bazy danych.

DM.InsertData.CommandText := 'INSERT INTO reportsdata VALUES('''', '''+IntToStr(DystrybutorzyArray[Combobox1.Itemindex])+''', '''+Stringgrid1.Cells[NalowkiArray[1],I]+''', '''+numervat+''', '''+Stringgrid1.Cells[NalowkiArray[7],I]+''', '''+Stringgrid1.Cells[NalowkiArray[9],I]+''', '''+Stringgrid1.Cells[NalowkiArray[10],I]+''', '''+Stringgrid1.Cells[NalowkiArray[11],I]+''');';

DM.InsertData.Open;
DM.InsertData.Close;

Nowa pozycja jest dodawana do bazy ale wyskakuje komunikat InsertData: Cursor not returned from Query.
czemu pojawia się ten komunikat? Jak rozwiązać ten problem?

0
Amadek napisał(a)

Probowałem zrobić podobnie do tego artykułu MySQL w Delphi dodawanie do bazy danych nowych elementów.
InsertData jest obiektem typu TSQLDataSet.
Najpierw w InsertData ustawiam zapytanie sqlowe które doda nową pozycję do bazy danych.


DM.InsertData.CommandText := 'INSERT INTO reportsdata VALUES('''', '''+IntToStr(DystrybutorzyArray[Combobox1.Itemindex])+''', '''+Stringgrid1.Cells[NalowkiArray[1],I]+''', '''+numervat+''', '''+Stringgrid1.Cells[NalowkiArray[7],I]+''', '''+Stringgrid1.Cells[NalowkiArray[9],I]+''', '''+Stringgrid1.Cells[NalowkiArray[10],I]+''', '''+Stringgrid1.Cells[NalowkiArray[11],I]+''');';

DM.InsertData.Open;
DM.InsertData.Close;


> 
> Nowa pozycja jest dodawana do bazy ale wyskakuje komunikat InsertData: Cursor not returned from Query.
> czemu pojawia się ten komunikat? Jak rozwiązać ten problem?

przepraszam, ze po angielsku, ale w ostatnich latach coraz rzadziej uzywam polskiego a terminologii w tej dziedzinie nie znam prawieze wcale..

the solution is very simple - cursor isn't returning, coz INSERT has nothing to return. use DM.InsertData.Open; for instructions that return sth (such as SELECT). for instruction like INSERT, DELETE etc. use DM.InsertData.ExecSQL; (which u don't have to close).

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0