Accueil > Forum > > > > Invalid variant type avec DBexpress et MYSQL
Invalid variant type avec DBexpress et MYSQL
mardi 5 février 2002 à 17:11:56 |
Invalid variant type avec DBexpress et MYSQL

DevEric
|
lorsque j'execute : MySQLDataSet.CommandType :=ctQuery; MySQLDataSet.CommandText :='select Symbol From Tb2'; MySQLDataSet.Open; Si Symbol est définit comme index ou clé primaire (et seulement dans ce cas la). J'ai l'erreur suivante : Invalid variant type conversion. Comment solutionner cette erreur..... Merci +++ Eric
|
|
dimanche 19 janvier 2003 à 15:23:00 |
Re : Invalid variant type avec DBexpress et MYSQL

svan1812
|
Bonjours , a part ce probleme pourrais-tu me dire si tu arrive a te connecter a ta data mysq,car je ramme pour y arriver et j'aimerai bien avoir un exemple qui fonctionne car a la base je développe surtous en php et le delphi me sert pour l'instant a essayer de développez une interface mais je m'accroche..Un grand merci d'avance Stephane
>
|
|
lundi 20 janvier 2003 à 14:03:49 |
Re : Invalid variant type avec DBexpress et MYSQL

DevEric
|
Oui je sais travailler sans problème avec MySql et Delphi. Il est important de choisir le bonne dll pour libmysql.dll et dbexpmysql.dll (voir site borland).
exemple de source:
unit MyDBCon;
interface
uses SysUtils, Classes, DBXpress, DB, SqlExpr, FMTBcd,Functions, Provider, DBClient, DBLocal, DBLocalS;
type TDMMyUsOptions = class(TDataModule) MySQLCon: TSQLConnection; MyClientDataSet: TSQLClientDataSet; SqlDataSetUpd: TSQLDataSet; procedure DataModuleCreate(Sender: TObject);
private procedure ReadInitFile(sFilename:string;sSubCateg:string;ObjCon:TSQLConnection); { Private declarations } public { Public declarations } procedure Connect(sFile:String;sGroup:String); procedure Close(); function GetDataset(sSql:string):TSQLClientDataSet; procedure GetLocDataSet(sSql:string;ClientDataSet:TSQLClientDataSet); function UpdateDataSet (sSql:Ansistring):integer; function LocateDataset (sTable:string;sField:string;sValue:string):Boolean; end;
var DMMyUsOptions: TDMMyUsOptions;
implementation
{$R *.dfm}
function TDMMyUsOptions.LocateDataset(sTable:string;sField:string;sValue:string):Boolean; var sSqlString:string;
begin result := false; //SQLDataSetUpd.DBConnection :=MySQLCon; SQLDataSetUpd.CommandType :=ctQuery; sSqlString:= 'select ' + sfield +' from '+ sTable + ' where ' + sField + ' = ' + ''''+ sValue+ ''''; SQLDataSetUpd.CommandText := sSqlString; SQLDataSetUpd.Open; if SQLDataSetUpd.Active = true then begin if SQLDataSetUpd.RecordCount > 0 then result := true; SQLDataSetUpd.Close; end; end;
procedure TDMMyUsOptions.ReadInitFile(sFilename:string;sSubCateg:string;ObjCon:TSQLConnection); var F:textfile; lig:String; bFlag:boolean; iPos:Integer; begin bflag:=false; if (sFileName <> '')and (sSubCateg <> '') then begin sSubCateg := '[' + sSubCateg + ']'; assignfile(F,sFileName); reset(F); while (not eof(F))and (bflag=false) do begin readln(F,lig); if InStr(0,lig,sSubCateg) = 1 then begin while bflag=false do begin readln(F,lig);
if InStr(0,lig,'User_Name')=1 then begin iPos:=Instr(0,lig,'='); if iPos > 1 then begin iPos:=length(lig)-ipos; ObjCon.Params.Values['User_Name']:=right(lig,ipos); end; end; if InStr(0,lig,'Password')=1 then begin iPos:=Instr(0,lig,'='); if iPos > 1 then begin iPos:=length(lig)-ipos; ObjCon.Params.Values['Password']:=right(lig,ipos); end; end; if InStr(0,lig,'Database')=1 then begin iPos:=Instr(0,lig,'='); if iPos > 1 then begin iPos:=length(lig)-ipos; ObjCon.Params.Values['Database']:=right(lig,ipos); end; end; if InStr(0,lig,'HostName')=1 then begin iPos:=Instr(0,lig,'='); if iPos > 1 then begin iPos:=length(lig)-ipos; ObjCon.Params.Values['HostName'] :=right(lig,ipos); end; end; if InStr(0,lig,'[END]')=1 then begin bflag:=True; end; end; end; end; closefile(f); end;
end;
function TDMMyUsOptions.GetDataset (sSql:string):TSQLClientDataSet; begin
MyClientDataSet.DBConnection :=MySQLCon; MyClientDataSet.CommandType :=ctQuery; MyClientDataSet.CommandText :=sSql; MyClientDataSet.Open;
result :=MyClientDataSet; end;
procedure TDMMyUsOptions.GetLocDataSet(sSql:string;ClientDataSet:TSQLClientDataSet); begin if ClientDataSet.Active=True then begin ClientDataSet.Close; end;
ClientDataSet.DBConnection :=MySQLCon; ClientDataSet.CommandType :=ctQuery; ClientDataSet.CommandText :=sSql; ClientDataSet.Open; end; function TDMMyUsOptions.UpdateDataSet(sSql:Ansistring):integer; begin try SQLDataSetUpd.CommandText :=sSql; result := SQLDataSetUpd.ExecSQL;
except result := -1; end; end;
procedure TDMMyUsOptions.Connect(sFile:String;sGroup:String); begin ReadInitFile(sFile,sGroup,MySQLcon); //ReadInitFile('MyUsOptions.txt','MyUsOptions',MySQLcon); MySQLcon.Open; end;
procedure TDMMyUsOptions.Close; begin if MySQLcon.Connected = true then begin MySQLcon.Close; MySQLcon.Free; end; end;
procedure TDMMyUsOptions.DataModuleCreate(Sender: TObject); begin
SQLDataSetUpd.SQLConnection :=MySQLCon; SQLDataSetUpd.CommandType :=ctQuery;
end;
end.
------------------------------- Réponse au message : -------------------------------
> lorsque j'execute : > MySQLDataSet.CommandType :=ctQuery; > MySQLDataSet.CommandText :='select Symbol From Tb2'; > MySQLDataSet.Open; > > Si Symbol est définit comme index ou clé primaire (et seulement dans ce cas la). J'ai l'erreur suivante : > Invalid variant type conversion. > Comment solutionner cette erreur..... > Merci +++ > Eric > >
|
|
mardi 9 octobre 2007 à 14:09:53 |
Re : Invalid variant type avec DBexpress et MYSQL

Pierre42
|
Il s'agit d'un bug de la dll de MySQL, qui ne gère pas convenablement les index en FULLTEXT. J'ai trouvé deux solutions aussi insatisfaisante l'une que l'autre mais fonctionnelle : - soit détruire les index FULLTEXT - soit intégrer un sub select dans la requête. Exemple : Select ID_CLIENT, NOM from CLIENT Se traduit par : Select ID_CLIENT, NOM, count(*) NB, count(*) / (select count(*) from CLIENT )*100 POURCENT from CLIENT group by 1
Pour obtenir la liste des clients. Pas très élégant, je vous le concède bien volontiers, mais à moins de revenir au BDE... Laurent Rigaldies France Progiciels Distribution www.franceprogiciels.com
|
|
Cette discussion est classée dans : type, invalid, variant, dbexpress, mysqldataset
Répondre à ce message
Sujets en rapport avec ce message
DBGRID, ADSI, ADO [ par DENNLER ]
Erreur :Impossible de convertir le variant de type (Array variant) en type (String) J'utilise les composants TADOQUERY,TDatasource et Tdbgrid avec une
opération [ par barbichette ]
Est-il possible de créer de nouvelles affections d'oppérations. C'est à dire avoir la possiblité d'additionner (c:=a+b) avec d'autres types que chaine
Creation d'une application avec base de donnée simple...help [ par VirusCrazy ]
Bonjour, Utilisant Delphi 7, je dois crer un logiciel pour une gestion commerciale de vente de produits. Jusqu'ici rien de bien compliqué . Le logic
Récupérer des données avec un classeur d'OpenOffice [ par darky93 ]
J'ai créé un petit programme pour me familiariser avec le contrôle d'OpenOffice. J'arrive à ouvrir un document type classeur, à modifier le nom des fe
1)paradox et le type float. 2),3)dbgrid [ par kam81 ]
bonjour,1)quand je crée une table paradox, et je veux declarer un champ comme étant float,je ne retrouve pas le type dans la liste des choix,aidez moi
nombre de page dans un documnet type pdf ou word [ par yvessimon ]
Bonjour,Avant d'imprimer un document de type pdf ou word je souhaite vérifier le nombre de page de ce document.Aussi comment lire ce nombre de page ?M
Retrouvailles avec le Pascal [ par MillePattes ]
Bonjour à tous ! C'est mon premier message et je voudrais me présenter. J'ai fait du Turbo-Pascal en amateur (mais à un niveau correct, je crois) il y
Sélection d'une police True Type [ par EddiTheHead ]
Bonjour,Dans un RichEdit, est-il possible de sélectionner une police True Type qui n'est pas installée dans le répertoire "Fonts"?J'aimerai afficher l
pointeurs [ par plusweb ]
Bonjour,j'aurai besoin d'aide concernant les pointeurs...C'est ma deuxieme année de pratique de delphi et j'attaque les pointeurs... J'ai trois exos a
POO : problème d'héritage [ par thierryC ]
Bonjour, Dans un programme en Delphi6, j'ai le souci suivant : une classe A contient un objet de type Classe B ; dans cette classe B, je crée un obje
Livres en rapport
|
Derniers Blogs
[FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLETECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLE par ROMELARD Fabrice
Speakers: Julien Marechal, Gautier Confiant, Sébastien MEYER La session débute par le positionnement de la solution System Center par rapport aux concepts d'organisation ITIL. Le portail du catalogue de se...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : PLEINIèRE SECOND JOURTECHDAYS PARIS 2012 : PLEINIèRE SECOND JOUR par ROMELARD Fabrice
Après une première journée dédiée aux développeurs, cette seconde journée est dédiée au monde des entreprises et de ses applications. Ainsi, cette pleinière est dédiée à faire un 360 de l'évolution des applications Business aux demandes ac...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|