2017-05-19 3 views

Répondre

3

ESQL/C (Embedded SQL en C) utilise le code de C pour la majeure partie du code, mais utilise des marqueurs spécifiques (soit $ dans Informix ESQL/C ou EXEC SQL dans les deux ESQL/C standard et Informix) pour indiquer où SQL Le script esql est le compilateur qui convertit automatiquement la source Informix ESQL/C en C d'abord, puis le code objet et un exécutable (sous les options sont principalement les mêmes que les options du compilateur C, dont la plupart sont passées au compilateur C inchangé).

Vous devez installer Informix ClientSDK (CSDK) pour pouvoir compiler des programmes ESQL/C. Cela est installé par défaut lorsque le serveur est installé, donc il y a de fortes chances que vous soyez OK si vous êtes sur une machine avec un serveur Informix actif (s'il a aussi un compilateur C et un environnement de développement). Il est également disponible en tant que produit autonome distinct que vous pouvez installer si vous ne disposez pas d'un serveur Informix sur votre ordinateur et que vous ne souhaitez pas le faire. Il y a des avantages à tester si le serveur est local (accès plus rapide, et moins de risques d'endommager les systèmes de production, entre autres).

En supposant que vous avez CSDK installé, vous devez définir la variable d'environnement INFORMIXDIR au point où le logiciel est installé (sauf si vous avez choisi de l'installer dans /usr/informix ou créer un lien symbolique /usr/informix qui pointe vers l'endroit où CSDK est installé). Vous voudrez également ajouter $INFORMIXDIR/bin à votre PATH. Vous êtes maintenant prêt à compiler:

  • Compile .ec fichiers (source ESQL/C) pour objet avec la commande esql:

    esql -c esqlc_source.ec 
    

    Ajouter d'autres options du compilateur C au besoin. Notez que -g est intercepté par le script esql et que vous devez travailler dur pour le transmettre au compilateur C. Envisagez de compiler des fichiers .c (source C) qui utilisent également un en-tête ESQL/C avec le script esql. Cela va passer le répertoire correct pour les en-têtes au compilateur C automatiquement. Il est plus probable que vous allez utiliser:

    ${CC} -c c_source.c -I${INFORMIXDIR}/incl/esql 
    
  • Pour lier, utilisez le script esql pour le faire. Il fournira les bibliothèques correctes (et les fichiers d'objets) au compilateur, qu'il appellera comme l'éditeur de liens:

    esql -o program c_source.o esqlc_source.o 
    

    Vous pouvez ajouter d'autres bibliothèques et des répertoires de bibliothèque comme d'habitude.

Vous avez compilé le programme; maintenant vous devez l'exécuter. Les chances sont que vous ne trouverez pas les bibliothèques automatiquement. Vous devrez penser à ajouter des répertoires à LD_LIBRARY_PATH ou modifier /etc/ld.so.conf pour récupérer les répertoires supplémentaires, ou créer des liens symboliques vers les bibliothèques Informix à partir d'un endroit qui sera automatiquement sélectionné (par exemple /usr/lib ou /usr/lib64, ou peut-être /usr/local/lib) où les bibliothèques sont installées.

Vous devez ajouter au minimum:

  • $INFORMIXDIR/lib
  • $INFORMIXDIR/lib/esql

Dans certaines circonstances, vous pouvez avoir besoin d'ajouter d'autres répertoires de bibliothèque trouvés sous $INFORMIXDIR/lib aussi, mais généralement pas.

Vous devriez alors être en mesure d'exécuter le programme. L'utilisation de ldd program vous permet de savoir quand les paramètres sont corrects.

+0

Merci pour l'aide. Je ne veux pas installer le serveur Informix sur ma machine. Comment puis-je être capable de le faire? @JonathanLeffler –

+0

Télécharger Informix CSDK à partir d'un site de téléchargement IBM/Informix. Cela devient difficile; Je suis un initié et faire passer les choses par la porte arrière. Cependant, une recherche Google sur 'ibm informix clientsdk download' montre un certain nombre de sites IBM à la plausibilité. Vous pouvez aussi consulter le site d'IIUG (International Informix User Group) (http://www.iiug.org/) - il peut être disponible ici. L'adhésion est gratuite. CSDK est disponible gratuitement quand même; le serveur est un élément payant, bien qu'il existe des configurations d'essai gratuites. –

+1

Ceci est le site officiel de téléchargement de logiciels IBM pour tous les produits gratuits - https://www-01.ibm.com/marketing/iwm/tnd/nochargesearchquery.jsp –