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

 


Dernière réponse
Sujet : [C++ / SQL / SQL Server 7] j'ai un message obscur
Sylderon 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+

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Sylderon 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+
Lord II zopzop .... zopzop .... zopzop .... zopzop
 
encoress
 
zopzop....zopzop....zopzop....zopzop
zop Mais encore ... :confused:
wouatouwouatou zopzop .... zopzop...
zop 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 ???
thegti Ouais rien d'anormal
T'as bien le SP2 pour SQL Server ?
on sait jamais avec Microsoftss
a+
RalphXML Tu n'a pas de gestion de transaction dans ta proc stock (ou enssehors) ?
 
Pour l'instant je seche.
 
A+
zop 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.
RalphXML 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+
zop 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];
RalphXML 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+
thegti 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
RalphXML Peux-tu m'indiquer le code de creation de ta connection.
 
Merci
 
A+
zop 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

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