[C# MySQL] MySql & stored Procedures.

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
(Whoops, titel vergeten in te vullen)
Moet zijn C# MySql & stored Procedures. Mijn Excuus!




Ik ben bezig om stored procedures aan de praat te krijgen vanuit een asp.net website. Nu heb ik een DAL gemaakt die prima overweg kan met access, SQL server enzovoorts maar zodra ik met MySQL aan de slag wil gaat het fout.

Foutmelding:

code:
1
Message: ERROR [42000] [MySQL][ODBC 5.1 Driver][mysqld-5.0.45-community-nt]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'GetPages' at line 1


Om de stored procedure uit te voeren gebruik ik:
code:
1
2
3
4
5
6
7
// Retreive a list of page titles
    public static DataTable GetPages()
    {
        DbCommand comm = GenericDataAccess.CreateCommand();
        comm.CommandText = "GetPages";
        return GenericDataAccess.ExecuteSelectCommand(comm);
    }


De stored procedure zelf ziet er zo uit:
code:
1
2
3
4
5
6
7
8
9
DELIMITER $$

DROP PROCEDURE IF EXISTS `database`.`GetPages` $$
CREATE DEFINER=`admin`@`%` PROCEDURE `GetPages`()
BEGIN
SELECT Id, Title, Content FROM `pages`;
END $$

DELIMITER ;


De syntax is volgens de Query Browser in orde dus ik snap niet waarom dit terug blijf krijgen. Kan dit te maken hebben met de Odbc connector ?
Heb al de meest eenvoudige query erbij gepakt om het te testen maar het wilt maar niet lukken.

[ Voor 3% gewijzigd door Verwijderd op 30-12-2008 19:25 ]


Acties:
  • 0 Henk 'm!

  • Haan
  • Registratie: Februari 2004
  • Nu online

Haan

dotnetter

Moet je niet ook de CommandType property zetten op 'StoredProcedure'?

Kater? Eerst water, de rest komt later


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Haan schreef op dinsdag 30 december 2008 @ 20:50:
Moet je niet ook de CommandType property zetten op 'StoredProcedure'?
Klopt, dat heb ik ook, die staat in een aparte classe, dus dat is al afgedekt :)

Acties:
  • 0 Henk 'm!

  • HawVer
  • Registratie: Februari 2002
  • Laatst online: 13-09 16:51
Zit er ook een trace functie op je mysql? Dan kun je zien wat er uiteindelijk op de server uitgevoerd wordt. ODBC icm .net zou nog wel eens een creatieve draai kunnen geven aan de uiteindelijke command.

http://hawvie.deviantart.com/


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
HawVer schreef op dinsdag 30 december 2008 @ 21:21:
Zit er ook een trace functie op je mysql? Dan kun je zien wat er uiteindelijk op de server uitgevoerd wordt. ODBC icm .net zou nog wel eens een creatieve draai kunnen geven aan de uiteindelijke command.
Je hebt gelijk, dat viel me al op. Ik ga het even met de .net connector proberen, misschien dat ik daar verder mee kom. Anders zal ik even de trace erbij pakken.

[ Voor 10% gewijzigd door Verwijderd op 30-12-2008 23:07 ]


Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 01:56
Als je het nog niet opgelost mocht hebben: :P

Ik ken de GenericDataAccess class & z'n members niet (is het een custom class?), maar, je voert een 'ExecuteSelectCommand' method uit.
Echter, jij voert geen 'SELECT command' uit, je voert een stored procedure uit. Dat je SP uiteindelijk een SELECT doet, doet niets terzake.
Volgens mij zit daar dus jouw fout: je moet niet de ExecuteSelectCommand' uitvoeren, maar een ExecuteNonQuery oid.

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
whoami schreef op woensdag 31 december 2008 @ 16:35:
Als je het nog niet opgelost mocht hebben: :P

Ik ken de GenericDataAccess class & z'n members niet (is het een custom class?), maar, je voert een 'ExecuteSelectCommand' method uit.
Echter, jij voert geen 'SELECT command' uit, je voert een stored procedure uit. Dat je SP uiteindelijk een SELECT doet, doet niets terzake.
Volgens mij zit daar dus jouw fout: je moet niet de ExecuteSelectCommand' uitvoeren, maar een ExecuteNonQuery oid.
Ja, GenericDataAccess is een class die onafhankelijk van de dataprovider die je gebruikt een dbcommand kan maken. Wat betreft de ExecuteSelectCommand. Ik heb het zojuist wel aan de praat gekregen met inderdaad een ExecuteNonQuery. Bedankt!

Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 01:56
Die GenericDataAccess class is er een die je zelf geschreven hebt ?

Had MS eigenlijk ook al niet zoiets geimplementeerd ? Ik kan nu even niet op de naam komen ... 8)7

https://fgheysels.github.io/

Pagina: 1