2008-11-19 8 views
2

Je suis tenté d'écrire des instructions SQL imbriquées pour DB2 qui obtient finalement Compilé en C.sql intégré dans le C

Je ne pouvais pas trouver un tutoriel ou manuel sur la syntaxe SQL embarqué C pour référence. Un cas que je voudrais faire est d'insérer des données dans une table. Je sais que la plupart des instructions sql embarquées ont besoin de SQL Initalizer EXEC, mais c'est l'étendue de mes connaissances en général. Je le fais pour une mission et apprécierais s'il y a plus d'informations concernant ceci ou solution.

Exemple d'une instruction pour interroger la base de données:

EXEC SQL SELECT SNAME, AGE dans: sname,: sage DE ONE.SAILOR OÙ sid =: sid;

J'aime voir quelle instruction me permet d'INSÉRER dans la base de données. J'ai essayé quelque chose comme ce qui suit, mais cela ne fonctionne pas.

EXEC SQL INSERT .... 
+0

En fait, j'ai finalement compris qu'il me manquait INTO, donc il devrait être EXEC SQL INSERT INTO ... whoops. – user38781

Répondre

2

Voir le manuel IBM Embedded SQL.

L'Embedded SQL est largement identique quel que soit le langage hôte.

1

Je viens de commencer à utiliser sqllite. Outre le bon documentation pour C++, SQLlist peut être une bonne chose à avoir parce que vous pouvez tester votre unité sans être dépendant de DB2 et il est très facile d'ajouter du code.

2

Les quatre points ne sont pas syntaxiquement valide :-D

La façon fiable est la même que toute autre instruction INSERT: liste les colonnes et les valeurs.

EXEC SQL INSERT INTO SomeTable(Col1, Col2, Col3) VALUES(:hv1, :hv2, :hv3); 

Ici, le: hv1,: hv2 et: HV3 représentent trois variables hôtes de types appropriés aux colonnes du tableau. Notez que la table peut contenir d'autres colonnes que ces trois tant que ces colonnes ont une valeur par défaut spécifiée ou accepter NULL (ce qui est vraiment un défaut par défaut dans ce cas). La façon fiable ne répertorie pas les colonnes:

EXEC SQL INSERT INTO SomeTable VALUES(:hv1, :hv2, :hv3); 

Maintenant, vous dépendent d'obtenir le droit de séquence, et vous devez fournir une valeur pour chaque colonne - il ne peut pas être des colonnes supplémentaires dans SomeTable.

Questions connexes