IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bases de données Delphi Discussion :

[Delphi 5] Fonction SQL + Microsoft.ACE.OLEDB.12.0


Sujet :

Bases de données Delphi

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 8
    Points : 8
    Points
    8
    Par défaut [Delphi 5] Fonction SQL + Microsoft.ACE.OLEDB.12.0
    Bonjour,

    J’utilise un objet TADOQuery qui se connecte à une base Access en utilisant comme provider Microsoft.ACE.OLEDB.12.0.

    Requête : « SELECT TRIM(nom_champ) as C FROM nom_table »

    Quand je vérifie le type de champ de « C », celui-ci correspond à un TMemoField.

    Si je change le provider pour utiliser Microsoft.Jet.OLEDB.4.0, le champ « C » correspond à un TStringField.

    J’ai remarqué que en utilisant Microsoft.ACE, toutes fonction SQL renvoyait un TMemoField !

    Vu la quantité de code, je ne peux pas me permettre de passer sur toutes les requêtes et vérifier si celle-ci me renvoi un TMemoField, existerait-il une solution pour que Microsoft.ACE me renvoi un TStringField quand on utilise une fonction dans la requête ? Un paramètre par exemple dans la chaîne de connexion ?

    Merci d’avance !

  2. #2
    Membre expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 550
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 550
    Points : 3 916
    Points
    3 916
    Par défaut
    Salut

    Je pense que tu es cousu.

    Dans la page https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx de msdn il est dit notamment ceci :
    To provide a more consistent data type naming scheme for Microsoft providers, Jet has modified the Text data type slightly. While the underlying storage has remained the same, the implications of the name text as used in SQL commands have changed. While Text in Jet referred to a short type, text in SQL Server is a BLOB field (akin to the Jet LongText/Memo type).
    A lire aussi : http://www.ascassociates.biz/odbc-dr...to-sql-server/ (paragraphe Native Client Problems with Memo Fields)

    -> La modification a été faite dans Jet lui-même. Microsoft a bien du mal de se défaire de ses vieilles habitudes, on casse tout, les développeurs s'adapteront, ils n'ont pas le choix ...
    Cdlt

    M E N S . A G I T A T . M O L E M
    Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal

    "La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
    Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    Je vous remercie de votre réponse, même si celle-ci ne va pas me faciliter la tâche !

    Mais comme vous le dites : "les développeurs s'adapteront, ils n'ont pas le choix ..."

Discussions similaires

  1. Le fournisseur 'Microsoft.ACE.OLEDB.12.0'
    Par Neewd dans le forum Visual Studio
    Réponses: 15
    Dernier message: 31/07/2020, 16h28
  2. Réponses: 4
    Dernier message: 02/12/2013, 13h00
  3. Requete SQL et le PROVIDER=MICROSOFT.ACE.OLEDB.12.0
    Par salimtrois dans le forum Accès aux données
    Réponses: 9
    Dernier message: 21/02/2012, 14h20
  4. Syntaxe SELECT CASE WHEN avec Microsoft.ACE.OLEDB.12.0
    Par kluh dans le forum Langage SQL
    Réponses: 5
    Dernier message: 28/12/2010, 10h59
  5. Réponses: 5
    Dernier message: 04/03/2010, 23h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo