Connexion d'un programme C et SQL Server

Fermé
lecadre Messages postés 36 Date d'inscription mercredi 25 juin 2014 Statut Membre Dernière intervention 24 novembre 2014 - 28 oct. 2014 à 12:19
lecadre Messages postés 36 Date d'inscription mercredi 25 juin 2014 Statut Membre Dernière intervention 24 novembre 2014 - 24 nov. 2014 à 18:20
Bonjour, je sollicite une aide dans le cadre d'un projet qui a pour but de connecter un programme C à une base de donnée SQL Server.
Merci beaucoup.



A voir également:

5 réponses

sambia39 Messages postés 610 Date d'inscription vendredi 31 juillet 2009 Statut Membre Dernière intervention 9 février 2023 49
1 nov. 2014 à 15:38
Bonjour
Pour tous ce qui est base de donner Mysql en langages C il faut inclure
#include <mysql.h> 
. et ce documenté sur les méthodes qui la compose
à bientôt
0
lecadre Messages postés 36 Date d'inscription mercredi 25 juin 2014 Statut Membre Dernière intervention 24 novembre 2014
10 nov. 2014 à 09:57
Bonjour Sambia39 je te remercie pour ta réponse mais je parlais de SQL Server dans mon message.
0
Célien Messages postés 5729 Date d'inscription jeudi 8 mai 2008 Statut Membre Dernière intervention 9 septembre 2021 1 993
Modifié par Célien le 10/11/2014 à 18:40
Salut,

Le C n'est pas l"idéal pour faire des développements avec SQL Server, ça serais mieux d'utiliser par exemple C# qui le supporte directement. Autrefois on utilisait DB-Library API pour developper en C avec SQL Server, mais c'est déconseillé car cette lib n'est plus maintenue. Il faut que tu utilises Microsoft ActiveX® Data Objects (ADO), OLE DB, ou ODBC. Tu va devoir installer une lib et un pilote, tu peu trouver les pilotes et les libs utiles sur le net.
0
sambia39 Messages postés 610 Date d'inscription vendredi 31 juillet 2009 Statut Membre Dernière intervention 9 février 2023 49
10 nov. 2014 à 19:09
Bonsoir
Je ne suis pas d'accord sur certains points, de plus le langage C# implémente la plupart deces méthodes déjà écrites et existantes, je dirais même qu'il la fait évoluer pour le langage C# a des fins et pour des besoins du langage en plus claire faciliter les choses comme tout autre langage de programmation.
Bref, il existe bien une version mise à jour et entretenue par Oracle ( MySqL ) qui supporte les nouvelles version de MySQL dont voici quelque lien et documentation:

https://dev.mysql.com/doc/refman/8.0/en/c-api-building-clients.html
http://translate.google.com/translate?depth=1&hl=fr&prev=search&rurl=translate.google.fr&sl=en&u=http://dev.mysql.com/doc/connector-c/en/connector-c-platforms.html

Bref, Cela change pas à ma réponse initiale si tu comptes te connecter au serveur d'une base de donnée ou je ne sais quoi depuis ton application écrite en langage C, il te faut forcément implémenter l'en-tête que je t'ai mentionné et aussi linker la bibliothèque fournie pour que cela fonction
à bientôt
0
Célien Messages postés 5729 Date d'inscription jeudi 8 mai 2008 Statut Membre Dernière intervention 9 septembre 2021 1 993
Modifié par Célien le 10/11/2014 à 21:14
sambia39,

1) il veux travailler avec Microsot SQL-Server et non MySQL. SQL Server c'est pas Oracle mais Microsoft !

2) Travailler avec l'API directe du SGBD comme on le faisais il y à 15 ans c'est démodé, parce qu'il est préférable d'utiliser un conteneur générique indépendant du SGBD, pour pouvoir ensuite facilement changer de SGBD si utile, ce qui existe en Java et en C# mais pas en C qui est un langage désuet, il faut donc soit utiliser l'API directe, soit une lib.

3) On ne comprends pas si tu parles du C ou du C# tu sembles confondre les deux. Lui il veux avec le C ce qui est le fond tu probleme, en C# le support des SGBD est inclus, pas en C.
0
sambia39 Messages postés 610 Date d'inscription vendredi 31 juillet 2009 Statut Membre Dernière intervention 9 février 2023 49
11 nov. 2014 à 12:03
Bonjour
j'ai peut-être mal expliqué mon approche.
Ceci dit, je pense qu'il a une préférence pour le langage C que le langage C# d'où sa question, et je reconnais avoir parlé d'Oracle erreur de ma part

À ton point 3 je ne confonds pas, je parle du langage C j'ai dû encore une fois mal m'exprimer :)

Dans le points 2, rien n'est démodé dans le domaine informatique tout se réutilise-t-il y a de vieux code qui tourne toujours dans nos applications récentes et dire que le langage C est un langage démodé je ne suis pas du tout d'accord avec ce principe de plus, le langage que tu décris est un langage certes évoluer et Objet ( je parle du C# ) qui facilite certaines choses mais il dépend fortement d'une API qui est .NET et restreint à un seul système d'exploitation contrairement à un langage comme le langage C puissant et qui a la particularité de faire du système et plus encore du très bas niveaux sans forcément dépendre d'une API et malgré ces aspects ce langage peut avoir une API ou une lib qui lui permet de manipuler les SGBD tout autant que d'autres langages de programmation avec quelque contrainte ( je te l'accorde).

@Célien : Autrefois on utilisait DB-Library API pour developper en C avec SQL Server, mais c'est déconseillé car cette lib n'est plus maintenue. Il faut que tu utilises Microsoft ActiveX® Data Objects (ADO), OLE DB, ou ODBC.

Je ne peut que dire qu'il existe des API qui marche avec le langage C et pas seulement pour de petite base de donné les grande aussi comme SQLAPI++ utiliser en C & C++ dont voici le lien https://www.sqlapi.com/ et qui a la particularité d'être multiplate-forme
Quant à DB-Library depuis SQLServer 2000 je ne sais pas s'il est mise à jour
bref tout ça pour dire qu'il y' a des API SGBD pour de nombreux langages de programmations et dont l'utilité dépendra des ressources a manipulé ou de l'architecture multiplate-forme ou pas que l'on souhaite faire.

à bientôt
0
lecadre Messages postés 36 Date d'inscription mercredi 25 juin 2014 Statut Membre Dernière intervention 24 novembre 2014
14 nov. 2014 à 10:55
Bonjour chers tous,
je vous remercie de l'intérêt que vous accordez à mon problème,finalement je souhaiterai utiliser visual studio(windows) pour mon programme C j'aimerai savoir si cela peut faciliter la connexion à SQL Server .
Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lecadre Messages postés 36 Date d'inscription mercredi 25 juin 2014 Statut Membre Dernière intervention 24 novembre 2014
24 nov. 2014 à 18:20
Bonjour chers tous,j'utilise sql server native 10.0 pour me connecter à sql server 2008 ,j ai taper un code en langage C n'arrive pas à me connecter voici mon code:

*********************************************
#include "sqlncli.h"
#include <windows.h>
#include <sqltypes.h>
#include <sql.h>
#include <sqlext.h>
#include <stdio.h>


int main()
{
SQLHANDLE sqlenvhandle;
SQLHANDLE sqlconnectionhandle = NULL;
SQLHANDLE sqlstatementhandle = NULL;
SQLRETURN retcode;
SQLCHAR retconstring[1024];

switch (SQLDriverConnect(sqlconnectionhandle,
NULL,
(SQLCHAR*)"Driver={SQL Server Native Client 10.0};Server=192.168.2.20;Database=safe;Uid=safe;Pwd=P@ssw0rd;",
SQL_NTS,
retconstring,
1024,
NULL,
SQL_DRIVER_NOPROMPT)){
case SQL_SUCCESS_WITH_INFO:
printf("connexion ok\n");
break;
case SQL_INVALID_HANDLE:
case SQL_ERROR:
printf("connexion echoue\n");
default:
break;
}

return 0;
}

********************************************
j'ai besoin de votre aide
0