begin process at 2012 05 28 03:58:38
  Trouver un code source :
 
dans
 
Accueil > Forum > 

ASP.NET

 > 

Base de données

 > 

SQL Server

 > 

Probleme requete SQL avec connection ODBC : presence de point dans le nom de table


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Probleme requete SQL avec connection ODBC : presence de point dans le nom de table

mercredi 4 mai 2011 à 11:05:29 | Probleme requete SQL avec connection ODBC : presence de point dans le nom de table

eddymercury

Bonjour a tous,

Je rencontre un probleme lors de l'execution de la requete "SELECT Colonne.1 FROM TableX"

Le soucis vient de la presence d'un point dans le nom de la colonne "Colonne.1".
Je precise que je ne peux pas changer le nom de la colonne.

Le site de MSDN propose trois contournements de ce probleme que je n'arrive pas a mettre en oeuvre.
Voir : http://support.microsoft.com/kb/972856/fr

Par contre une requete type SELECT * fonctionne, toutefois je ne peux l'employer comme solution car la base est extremement volumineuse !
Auriez vous une idee pour contourner ce probleme simplement ?

Merci d'avance pour votre aide,
cordialement, eddy s



voici le detail du code au besoin, la ligne en rouge genere l'erreur "ERROR [42000] [ABB][SPIDER ODBC Driver]".

Cmd = "SELECT TableX.[Colonne.1], TIME FROM TableX"
Dim Con As Odbc.OdbcConnection
Con = New Odbc.OdbcConnection(ConSTR)
Dim Quer As New Odbc.OdbcCommand(Cmd, Con)
Dim DataAdaptw As Odbc.OdbcDataAdapter
DataAdaptw = New Odbc.OdbcDataAdapter(Quer)
Try
Con.Open()
GridView1.DataSource = DataAdaptw.SelectCommand.ExecuteReader()
GridView1.DataBind()
Con.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try
mercredi 4 mai 2011 à 11:22:02 | Re : Probleme requete SQL avec connection ODBC : presence de point dans le nom de table

jopop

Salut,

perso j'aurais même écrit [TableX].[Colonne.1] (avec les crochets sur le nom de la table). Je ferai également remarquer que la requête que tu nous montre n'est pas valide (y'a une virgule qui traîne).

pour l'erreur en elle-même je dirais que DataSource n'accepte pas un IDataReader comme valeur. Quand on regarde sur la MSDN il est écrit :

La classe DataGridView prend en charge le modèle de liaison de données standard des Windows Forms. Cela signifie que la source de données peut être de tout type qui implémente l'une des interfaces suivantes :

L'interface IList, y compris les tableaux unidimensionnels.

L'interface IListSource, telle que les classes DataTable et DataSet.

L'interface IBindingList, telle que la classe BindingList.

L'interface IBindingListView, telle que la classe BindingSource.


Or un DataReader n'implémente aucune de ces interfaces.
mercredi 4 mai 2011 à 11:50:24 | Re : Probleme requete SQL avec connection ODBC : presence de point dans le nom de table

eddymercury

Bonjour Jopop, merci pour cet element
J'ai essaye ta synthaxe, sans succes.

Je precise que la table comprend une colonne "TIME".

L'execution de la requete "SELECT TIME FROM TableX" fonctionne tres bien, les donnees s'affichent correctement dans le gridview.
Si j'essaye la requete suivante : SELECT Colonne.1 FROM TableX, j'obtiens une erreur.

C'est bien le point dans Colonne.1 qui pose probleme

eddy
mercredi 4 mai 2011 à 12:03:34 | Re : Probleme requete SQL avec connection ODBC : presence de point dans le nom de table

jopop

Re,

Je suis doublement étonné.

Etonné que la syntaxe avec les crochets sur la table ne passent pas. De souvenir j'avais lu pas mal de requêtes écrites ainsi (moi même ne m'étant jamais servi de SQL Server).

Etonné qu'il veuille bien d'un IDataReader comme DataSource, alors que la MSDN déclare que ce n'est pas possible (je me sers jamais des DataGridView non plus ^^).

As-tu essayé une syntaxe avec des alias, comme le propose ton lien :
Code :
SELECT [Colonne.1] AS Colonne_1, TIME FROM TableX
mercredi 4 mai 2011 à 12:12:27 | Re : Probleme requete SQL avec connection ODBC : presence de point dans le nom de table

eddymercury

tu vas rire :

"SELECT TIME AS TIME_Bidule FROM ..." fonctionne,
"SELECT [TIME] AS TIME_Bidule FROM ..." plante !

ps : je ne suis pas sur que la bdd soit sqlserver, elle peut etre access tout simplement car j'utilise une connection ODBC.
en fait j'ai bien peu d'elements sur elle car le client ne parle pas ma langue et qu'elle est distante et integree a un SCADA.

toutefois, certaines requetes marchent sans probleme, ce qui exclue l'hypothese d'un probleme de connection ou d'un probleme de gridview.

eddy
mercredi 4 mai 2011 à 13:55:41 | Re : Probleme requete SQL avec connection ODBC : presence de point dans le nom de table

jopop

Réponse acceptée !
Arf ! Le souci c'est que la syntaxe SQL varie d'un SGBD à l'autre, même en utilisant le même package (en l'occurrence ODBC). Par exemple pour SQL Server il s'agit de crochets [], mais pour Oracle il me semble qu'il faut des doubles-quotes "" (et dans MySQL c'est des quotes spéciales ``).

Donc tu ne sais pas quel SGBD est derrière, mais sais-tu s'il peut varier ? Car s'il est stable dans le temps il suffit de trouver dans un premier temps duquel il s'agit, puis de le prendre pour acquis par la suite.
mercredi 4 mai 2011 à 14:17:51 | Re : Probleme requete SQL avec connection ODBC : presence de point dans le nom de table

eddymercury

Il est absolument stable,
je vais creuser un poil pour en savoir plus,
merci, eddy
jeudi 5 mai 2011 à 09:43:48 | PROBLEME RESOLU

eddymercury

Réponse acceptée !

Une enquete s'imposait en effet aupres du client quant au type de SGDB utilise, il s'avere que celui-ci n'est ni SQLServer, ni MySql, ni Access mais un fournisseur specifique dedie au SCADA et associe a celui-ci. Il possede sa propre synthaxe SQL dont j'ai pu avoir le document de specifications ... je suis dans la *
La connection est etablie grace a un objet DNS qui etait deja configure, et avec lequel je communiquais joyeusement depuis des semaines sans connaitre le SGDB.

Mon post est donc hors sujet et je m'en excuse.

RESOLUTION : mon probleme de "." dans le nom de colonne est insoluble avec la sytntaxe sql disponible, j'utiliserai donc une requete SELECT * versee dans un dataReader. J'interroge ensuite le champ Colonne.1 du datareader. c'est laborieux et tres gourmand mais ca marche.

merci pour les pistes, a bientot, eddy


Cette discussion est classée dans : odbc, probleme, requete, colonne, con


Répondre à ce message

Sujets en rapport avec ce message

probleme d'insertion des enregistrements dans la BD chez le fournisseur [ par rim ] bonjour à tous mon problème est comme suit:j'ai écris 2 pages (.asp) différentes qui traitent les données saisies et les insérent dans une base de don synchronisation de requete [ par bill ] BonjourVoila mon probleme :Je doit faire des requetes SQL sur une base les une apres les autresComment faier pour attendre que la requete soit fini av Probleme ASP-DATE svp [ par flo62100 ] Bonjour a tous!J ai un probleme, je n arrive pas a executer un requete avec comme parametre 2 dates!! Je dois afficher le resultat d une base access e probleme avec BD [ par omaroch ] salutjai un ptit soucis que jarrive pas a resoudre.jai une requete Update et dans la condition je compare un champ de numero automatique qui est un en requete [ par ddyefre ] Bonjour, j'ai un probleme que j'arrive pas a resoudre...!avant de presenter mon probleme je fixe le contexte :j'ai une table élève, qui a des champs n asp et requete [ par ddyefre ] Bonjour,j'ai un petit probleme et si quelqu'un pouvais m'aider se serai pas de refus...!je voudrais, dans un fichier asp recuperer le resultat d'une r probleme avec Petit questionnaire [ par seedorf ] bonjour, simplement je suis pas un ASPiste, mais je me trouve un peu obliger je faire un petit questionnaire pour une etude, ds le script j'ai fait ca Probleme avec une requete [ par Sinse ] Bonjour a tous, Voila j'ai la requete suivante (qui marche correctement sur access)SQL="Select * from Ticket_incident" SQL= SQL&" WHERE [Date de debu Probleme de requete ASP-SQL [ par peguman ] lors d'un e requete SQL d'insertion dans une table, l'erreur suivante apparait : ADODB.Field erreur '800a0cb3' L'opération demandée par l'application ASP.NET /VB: Probleme dexecution de requete SQL appelant une fonction [ par racecoco ] Bonjour, Je travaille sur une base de donnée Oracle.En effectuant une requete sql contenant une fonction que j'ai défini, à l'exécution j'ai un proble


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,562 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales