[Delphi & Mysql] koppelen dbGrid

Pagina: 1
Acties:

  • FendtVario
  • Registratie: Januari 2002
  • Laatst online: 12-05-2025

FendtVario

The leader drives Vario!

Topicstarter
Sinds Delphi 6 is er aan het standaard componentenpalleet de dbExpress toegevoegd. Ik ben een beetje aan het expirementeren met de koppeling naar MySQL maar deze bevalt met nog niet echt.

Ik kan namelijk geen TDbGrid koppelen aan een MySQL DataSet. Delphi geeft dan de foutmelding "Operation not allowed on a unidirectional dataset.". Waarom is dit? Ik kan ook geen DataSet.Insert doen. Mijn idee nu is dat het dus niet echt handig is om een MySQL als backend te gebruiken voor je applicatie. Als je een nieuw veld zou moeten toevoegen betekent dit dat je zelf een formulier moet maken met een stuk of wat TEdit's en dan met SQL de gegevens toe moet voegen. Er zijn wel andere componentjes die het wel kunnen maar die zijn niet compatible met Kylix.

Heeft het niet kunnen inserten van records (en nog een paar dingen) te maken met de manier waarop mySQL de resultset terug geeft? Als een klomp data en de rest aan de client overlaat. Ik ben niet echt te spreken over de dbExpress koppeling naar MySQL. Iemand andere ervaringen of misschien een voorbeeldje van hoe het wel moet?

www.fendt.com | Nikon D7100 | PS5


  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

dbExpress is by default een readonly unidirectionele dataset. Oftewel, je kan alleen vooruit in je dataset en niet bewerken. Geen Edit, Insert, Locate, First, Previous enz. Dit is om snelheidsredenen zo gedaan. Ook .Net doet het op deze manier.

Als je dit allemaal toch wilt (wat niet gek is) kan je een TSQLClientDataSet gebruiken (Das een TSQLDataSet samengevoegd met een TDataSetProvider en een TClientDataSet). Die maakt een locale copy van de gegevens waar je dus wel alles mee kan doen. Je moet wel apart aangeven wanneer je de wijzigingen gedaan op deze locale copy wilt doorvoeren naar de DB met ApplyUpdates.

Zie ook:
http://www.thedelphimagazine.com/Samples/1540/1540.htm
http://gethelp.devx.com/t...10min0701/10min0701-1.asp

We adore chaos because we like to restore order - M.C. Escher


  • FendtVario
  • Registratie: Januari 2002
  • Laatst online: 12-05-2025

FendtVario

The leader drives Vario!

Topicstarter
LordLarry schreef op 13 februari 2003 @ 15:14:
dbExpress is by default een readonly unidirectionele dataset. Oftewel, je kan alleen vooruit in je dataset en niet bewerken. Geen Edit, Insert, Locate, First, Previous enz. Dit is om snelheidsredenen zo gedaan. Ook .Net doet het op deze manier.
Opzicht wel te begrijpen voor die snelheid en misschien ook nog wel voor het internet gebeuren. Maar in een applicatie zou het toch gewoon moeten kunnen.

Maar bedankt, ga het even proberen en dan hoor je het nog wel.

www.fendt.com | Nikon D7100 | PS5


  • FendtVario
  • Registratie: Januari 2002
  • Laatst online: 12-05-2025

FendtVario

The leader drives Vario!

Topicstarter
euh, misschien een beetje domme vraag. Maar ik kan dat component, TSQLClientDataSet hier niet vinden. Waar kan ik dat vandaan halen? Ik gebruik Delphi 7 enterprise.

www.fendt.com | Nikon D7100 | PS5


  • nightowl
  • Registratie: April 2002
  • Laatst online: 14-03-2009

nightowl

always too early to sleep

Zoek ook eens met google op "access MySQL with Delphi". Hier heb ik recentelijk components gevonden die ook data-aware ondersteunen en zonder BDE of ODBC werken.

Ik pas in mijn jas. Mijn jas past in mijn tas. Dus ik pas in mijn tas.


  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

FendtVario schreef op 13 februari 2003 @ 15:52:
Opzicht wel te begrijpen voor die snelheid en misschien ook nog wel voor het internet gebeuren. Maar in een applicatie zou het toch gewoon moeten kunnen.
Een applicatie kan het toch ook gewoon? Ik heb je net uitgelegt hoe.
euh, misschien een beetje domme vraag. Maar ik kan dat component, TSQLClientDataSet hier niet vinden. Waar kan ik dat vandaan halen? Ik gebruik Delphi 7 enterprise.
Beter kijken denk ik :) Gewoon op je dbExpress Tab.

We adore chaos because we like to restore order - M.C. Escher


  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

nightowl schreef op 13 February 2003 @ 23:26:
Zoek ook eens met google op "access MySQL with Delphi". Hier heb ik recentelijk components gevonden die ook data-aware ondersteunen en zonder BDE of ODBC werken.
Die heb je ook idd. In vele varianten al dan niet gratis. Je zou ook zelf de libmysql.dll kunnen aanspreken.

De charme van dbExpress is nu juist dat je zonder een regel code te veranderen, gewoon via instellingen die gedaan kunnen worden door een eindgebruiker, van DBMS zou kunnen wisselen. Bijvoorbeeld naar Interbase/Firebird, DB2, MS-SQL, Oracle enz...Net zoals BDE, ODBC en ADO dat kunnen.

We adore chaos because we like to restore order - M.C. Escher


  • FendtVario
  • Registratie: Januari 2002
  • Laatst online: 12-05-2025

FendtVario

The leader drives Vario!

Topicstarter
LordLarry schreef op 14 February 2003 @ 09:35:
[...]


Een applicatie kan het toch ook gewoon? Ik heb je net uitgelegt hoe.


[...]


Beter kijken denk ik :) Gewoon op je dbExpress Tab.

www.fendt.com | Nikon D7100 | PS5


  • FendtVario
  • Registratie: Januari 2002
  • Laatst online: 12-05-2025

FendtVario

The leader drives Vario!

Topicstarter
Ik heb 'm hier toch echt niet,
TSQLConnection
TSQLDataSet
TSQLQuery
TSQLStoredProc
TSQLTable
TSQLMonitor
TSimpleDataSet

Geen TSQLCLientDataset dus.

www.fendt.com | Nikon D7100 | PS5


  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Ok, het blijkt dat sinds D7 een TSQLClientDataSet een TSimpleDataSet is gaan heten...

We adore chaos because we like to restore order - M.C. Escher

Pagina: 1