Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1448 connectés 

  FORUM HardWare.fr
  Programmation

  [C++ / SQL / SQL Server 7] j'ai un message obscur

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++ / SQL / SQL Server 7] j'ai un message obscur

n°8668
zop
1 world, 1 web, 1 Windows
Posté le 07-01-2001 à 00:46:09  profilanswer
 

A partir d'un programme C++, je tente d'insérer des lignes dans une base de données en faisant appel à une procédure stockée à laquelle je passe des paramètres. Le premier appel passe mais pas les autres; à partir de la deuxième tentatve le message d'erreur est quelque chose du genre "[MICROSOFT][SQL][ODBC]... état du curseur incorrect" alors qu'en créant la connection à la base, je spécifie à SQL qu'il doit gérer lui ledit curseur. D'ailleur, je ne sais pas comment modifier la valeur di curseur. Quelqu'un saurait-il me dire d'où vient le problème.ss
 
PS : là j'ai pas de code étant donné que je suis pas au travail, je compte sur vous. Je vais me coucher, @ demain

mood
Publicité
Posté le 07-01-2001 à 00:46:09  profilanswer
 

n°8762
RalphXML
Posté le 08-01-2001 à 10:00:59  profilanswer
 

Peux-tu m'indiquer le code de creation de ta connection.
 
Merci
 
A+

n°8767
thegti
La constipation se soigne ...
Posté le 08-01-2001 à 10:46:50  profilanswer
 

J'aurais tendance à penser que tu a pas fermé ton curseur dans la procédure stockée, car SQL Server garde les curseurs en mémoire
 
CLOSE Curseur
DEALLOCATE Curseur

n°8772
RalphXML
Posté le 08-01-2001 à 11:20:36  profilanswer
 

Peux tu egalement nous decririre la procedure stockee.
 
Est-ce qu'il y a des curseurs ?
Est-ce qu'il y a une gestion de transactions ?
A+

n°8776
zop
1 world, 1 web, 1 Windows
Posté le 08-01-2001 à 11:41:07  profilanswer
 

A RalphXML >ss
bool CstockeDB::ConnectDataBase(){
 
 
 if (!strlen((char *)session_id)) return false;
 retcode2 = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv2);
 if (retcode2!=SQL_SUCCESS && retcode2!=SQL_SUCCESS_WITH_INFO){
ssCloseConnection();
ssfprintf(fd,"1 - SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv2); n'a pas marché, renvoyant "%d"
",retcode2);
ssreturn false;
 }
 retcode2 = SQLSetEnvAttr(henv2, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0);
 if (retcode2!=SQL_SUCCESS && retcode2!=SQL_SUCCESS_WITH_INFO){
ssCloseConnection();
ssfprintf(fd,"2 - SQLSetEnvAttr(henv2, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0); n'a pas marché, renvoyant "%d"
",retcode2);
ssreturn false;
 }
 retcode2 = SQLAllocHandle(SQL_HANDLE_DBC, henv2, &hdbc2);
 if (retcode2!=SQL_SUCCESS && retcode2!=SQL_SUCCESS_WITH_INFO){
ssCloseConnection();
ssfprintf(fd,"3 - SQLAllocHandle(SQL_HANDLE_DBC, henv2, &hdbc2); n'a pas marché, renvoyant "%d"
",retcode2);
ssreturn false;
 }
 retcode2 = SQLConnect(hdbc2,dsn, SQL_NTS,(SQLCHAR*) "sa", SQL_NTS,(SQLCHAR*) "caron73", SQL_NTS);
 if (retcode2 != SQL_SUCCESS && retcode2 != SQL_SUCCESS_WITH_INFO){
ssCloseConnection();
ssfprintf(fd,"4 - SQLConnect(hdbc2,dsn, SQL_NTS,(SQLCHAR*) "sa", SQL_NTS,(SQLCHAR*) "caron73", SQL_NTS); n'a pas marché, renvoyant "%d"
",retcode2);
ssreturn false;
 }
 retcode2 = SQLAllocHandle(SQL_HANDLE_STMT, hdbc2, &hstmt2);ss
 if (retcode2 == SQL_SUCCESS || retcode2 == SQL_SUCCESS_WITH_INFO){
ssconnected=true;
ssreturn true;
 }
 else{
ssCloseConnection();
ssfprintf(fd,"5 - SQLAllocHandle(SQL_HANDLE_STMT, hdbc2, &hstmt2); n'a pas marché, renvoyant "%d"
",retcode2);
ssreturn false;
 }
}
 
 
Les membres privés sont :
 
 char message[NB_MESS][1000];
 SQLHDBC hdbc2;
 SQLHENV henv2;
 SQLRETURNssretcode2;
 SQLHSTMT hstmt2;
 unsigned char strsql2[1024]/*,table1[512],table2[512]*/,chaine[65535],dsn[512],session_id[14];
ss
 bool connected,dja;
 FILE *fd;
 SQLCHAR user[256],pass[256];

n°8797
RalphXML
Posté le 08-01-2001 à 14:04:50  profilanswer
 

Ca me semble correct au niveau de la connection.
Il faut peux-etre regarder la proc stock au niveau de curseur etc..
J'aimerai savoir si tu ouvres ta connection une fois pour toute a ta premiere requete ou si tu utilise cette methode de connection a chaque interrogation DB.
 
A+

n°8798
zop
1 world, 1 web, 1 Windows
Posté le 08-01-2001 à 14:26:26  profilanswer
 

Merci RalphXML , je ne me connecte qu'une seule fois de cette façon. La prod stock est d'une simplicité "biblique" :
 
¤
CREATE PROCEDURE DeclareSession @sid varchar(100),@etat int,@commentaire varchar(500) AS
 
if exists(select * from session where s_id=@sid)
begin
 update session set s_etat = @etat,s_commentaire = @commentaire where s_id=@sid
end
else
begin
 insert into session values(@sid,@etat,@commentaire)
end
¤
 
voilu, voila.

n°8802
RalphXML
Posté le 08-01-2001 à 14:47:03  profilanswer
 

Tu n'a pas de gestion de transaction dans ta proc stock (ou enssehors) ?
 
Pour l'instant je seche.
 
A+

n°8804
thegti
La constipation se soigne ...
Posté le 08-01-2001 à 15:07:22  profilanswer
 

Ouais rien d'anormal
T'as bien le SP2 pour SQL Server ?
on sait jamais avec Microsoftss
a+

n°12192
zop
1 world, 1 web, 1 Windows
Posté le 31-01-2001 à 16:37:25  profilanswer
 

OOOOOh salut les gars (je crois qu'il n'y a pas de filles dans ce forum), je continue à piétiner ... N'y aurait-il pas quelqu'un avec une solution à me proposer ???

mood
Publicité
Posté le 31-01-2001 à 16:37:25  profilanswer
 

n°12195
wouatouwou​atou
Posté le 31-01-2001 à 17:11:30  profilanswer
 

zopzop .... zopzop...


---------------
"C'est le boulot qu'on ne commence jamais qui est le plus long à terminer"
n°12205
zop
1 world, 1 web, 1 Windows
Posté le 31-01-2001 à 17:36:49  profilanswer
 

Mais encore ... :confused:

n°12212
Lord II
PIB2000
Posté le 31-01-2001 à 17:52:41  profilanswer
 

zopzop .... zopzop .... zopzop .... zopzop
 
encoress
 
zopzop....zopzop....zopzop....zopzop


---------------
La bave du crapaud n'empèche pas la caravane de passer .
n°12241
Sylderon
Posté le 31-01-2001 à 20:45:00  profilanswer
 

Navré, je sèche aussi !
Demain j'essaierai de consulter MSDN pour me renseigner plus avant sur les problèmes référencés liés aux curseurs.
 
A+


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [C++ / SQL / SQL Server 7] j'ai un message obscur

 

Sujets relatifs
Plus de sujets relatifs à : [C++ / SQL / SQL Server 7] j'ai un message obscur


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR