In Delphi 8 ben ik bezig met een webform applicatie. In de applicatie gebruik ik o.a. een grid (Datagrid). Dit grid is gekoppeld aan een dataset. Die dataset is gekoppeld met een DataAdapter.
Nu heb ik voor die DataAdapter een (select)SQL statement. Bij het starten van de applicatie wordt het grid dan ook netjes gevuld.
Nu wil ik echter runtime het select SQL statement aanpassen, zodat ik een andere recordset krijg. Maar daar gaat het mis. Op de één of andere manier wordt het grid niet geüpdate.
Dit werkt echter niet. Ik heb het al op diverse andere manier geprobeerd, maar geen van de onderstaande oplossingen werkt.
Door in het DataAdapter een parameter toe te voegen, en die dan op onderstaande manier te gebruiken:
Door de connectie als test opnieuw te openen:
Door het grid opnieuw te vullen dmv:
De objecten die ik gebruik:
Waar het precies fout gaat weet ik echter niet. Volgens mij wordt de query gewoon niet opnieuw uitgevoerd. Zoeken op Google / GoT gaf echter geen uitkomst.
Bovenstaande code wordt in een postback uitgevoerd.
Nu heb ik voor die DataAdapter een (select)SQL statement. Bij het starten van de applicatie wordt het grid dan ook netjes gevuld.
Nu wil ik echter runtime het select SQL statement aanpassen, zodat ik een andere recordset krijg. Maar daar gaat het mis. Op de één of andere manier wordt het grid niet geüpdate.
Delphi:
1
2
| daDeelact.SelectCommand.CommandText := 'SELECT * FROM deelact where internprojectnr = 1 and projectnr = ' + edProjectnr.text; DataGrid1.DataBind; |
Dit werkt echter niet. Ik heb het al op diverse andere manier geprobeerd, maar geen van de onderstaande oplossingen werkt.
Door in het DataAdapter een parameter toe te voegen, en die dan op onderstaande manier te gebruiken:
Delphi:
1
2
| daDeelact.SelectCommand.Parameters['projectnr'].Value:= edProjectnr.text; DataGrid1.DataBind; |
Door de connectie als test opnieuw te openen:
Delphi:
1
2
3
| daDeelact.active := false; daDeelact.SelectCommand.CommandText := 'SELECT * FROM deelact where internprojectnr = 1 and projectnr = ' + edProjectnr.text; daDeelact.active := true; |
Door het grid opnieuw te vullen dmv:
Delphi:
1
| daDeelact.Fill(testdataset,'deelact'); |
De objecten die ik gebruik:
code:
1
2
3
| daDeelact : DataAdapter DataGrid1 : DataGrid testdataset : Dataset |
Waar het precies fout gaat weet ik echter niet. Volgens mij wordt de query gewoon niet opnieuw uitgevoerd. Zoeken op Google / GoT gaf echter geen uitkomst.
Bovenstaande code wordt in een postback uitgevoerd.
-