begin process at 2012 02 13 00:00:59
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Base de données

 > 

SQL

 > 

optimisation requete SQL


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

optimisation requete SQL

mercredi 30 janvier 2008 à 11:19:44 | optimisation requete SQL

LaTatadu91

Bonjour à tous,

Je programme actuellement un petit code permmetant d'acceder a SQL sever Express (en utilisant ado)
à un moment je dois rentrer un tableau C++ de 2 dimensions dans une table de ma base SQL, je fais donc :

 for ( i=0; i<NX_TMP; i++ )
   {
      // For all Y points
      for ( j=0; j<NY_TMP; j++ )
      {
           strcpy(strExec, "UPDATE MaTable SET ");
         sprintf(temp," Tmp = %f",tmp);
         strcat(strExec,temp);
         sprintf(temp," WHERE nx = %d",i);
         strcat(strExec,temp);
         sprintf(temp," AND ny = %d",j);
         strcat(strExec,temp);
    }
 try
         {
            // Insere des éléments
            // ===================
            HRESULT retour = recordset->Open(strExec,
                connection.GetInterfacePtr(), adOpenForwardOnly,
                adLockReadOnly, adCmdText);
         }
}

le probleme c'est que cela génere donc NX * NY requete (dans mon cas precis 6000)
je voudrais savoir si il n'y a pas moyen d'optimiser tout ceci en une seule requete et de rentrer mon tableau 2D d'un seul coup?

je ne connais malheureusement de SQL que les requetes basiques SELECT, UPDATE etc...
donc si une ame charitable voulait bien m'aider
Merci d'avance.


 

mercredi 30 janvier 2008 à 11:42:53 | Re : optimisation requete SQL

mogwai93

un truc comme ça ? :
UPDATE MaTable SET Tmp = "ta valeur de tmp" WHERE nx >= 0 AND nx < NX_TMP AND ny >= 0 AND ny < NY_TMP
mercredi 30 janvier 2008 à 11:46:46 | Re : optimisation requete SQL

LaTatadu91

oui mais Tmp n'est pas fixe ....

 

mercredi 30 janvier 2008 à 11:51:11 | Re : optimisation requete SQL

LaTatadu91

en fait imaginons un tableau 2d sous C++ et je voudrais le rentrer dans une table SQL en 1 seule requete...
comment faire cela?

pr arriver a avoir

X     |     Y
0            5
12          3
...           ...
59           21

etc....
remplir cette table en 1 requete!


 

mercredi 30 janvier 2008 à 14:27:01 | Re : optimisation requete SQL

LaTatadu91

c'est impossible? de faire ca d'un seul trait ? obligé de faire mes boucles sur les requetes?

 

mercredi 30 janvier 2008 à 15:40:38 | Re : optimisation requete SQL

BruNews

Administrateur CodeS-SourceS
Regarde 'BULK' dans MSDN.

ciao...
BruNews, MVP VC++
mercredi 30 janvier 2008 à 15:57:34 | Re : optimisation requete SQL

LaTatadu91

Salut brunews,

merci de me guider! je viens de lire pas mal de choses rapidement sur BULK INSERT et a priori on peut insérer des données en bloc dans une table
ce qui repondrait a ma problématique... mais j'ai vu que c'était à partir d'un fichier hors moi je dois faire ca a partir d'une structure C++.
je vais continuer à lire des forums et des aides dessus mais si tu pouvais STP, m'aiguiller encore un peu plus ca serait magnifique 

 

mercredi 30 janvier 2008 à 16:51:24 | Re : optimisation requete SQL

BruNews

Administrateur CodeS-SourceS
Je viens de voir que la méthode 'Update' de ADO 2.8 semble répondre précisément à ce que tu veux faire.

ciao...
BruNews, MVP VC++
jeudi 31 janvier 2008 à 09:52:20 | Re : optimisation requete SQL
vendredi 1 février 2008 à 10:30:59 | Re : optimisation requete SQL

1 2

Cette discussion est classée dans : sql, requete, temp, for, strexec


Répondre à ce message

Sujets en rapport avec ce message

Probleme de syntaxe SQL [ par LaTatadu91 ] Je ne sais pas quel forum est plus adapté (SQl ou C++)donc REPOST: Bonjour a tous,Voila mon probleme Requetes nombreuses a effectuer-> tps d'execution trop long [ par LaTatadu91 ] Bonjour,Voila à l'intérieur d'un programme j'effectue des requetes vers SQL Server Express.des INSERT UPDATE etc... rien de trop méchant en somme.J'ai connexion SQL persistante ou pas? [ par LaTatadu91 ] Bonjour a tous,Voila dans un prog C++ je suis amener a travailler sur SQL Server...je dois effectuer pas malde  requete et cela periodiquementje me de recuperation d'un resultat d'une requete sql en c++ [ par mamstyle ] je travaille actuellement sur un projet de BTS.je dois recuperer le resultat d'une requete sql du type select codebarre from employe en C++ dans un ch requete insert SQL pour 2000 données [ par akirra44 ] Bonjour, tout abord je vous prévient je suis une bille en SQL... je doit rentrer 2000 données dans ma BDD pour de la fabrication de rhum. Sachant que Boucle d'une requete SQL [ par sourcilpower ] Voila je voudrais faire une boucle qui exécute une requête SQL d'insertion de 5 lignes en 5 lignes. Pourriez-vous m'aider svp ? La concatenation en c++ : [ par nacimem ] Bonjour à tous, je suis nouveau en programmation objet et j'aimerais quelque conseil svp. Alors avant lorsque je programmer en php il m'était possibl pb requete mysql INSERT INTO avec parametre c++ [ par Maj62 ] voila jai un probleme j'arrive a utiliser Insert into en mettant les valeur que je veu ajouter dans ma table sql en dur   mysql_query(myData,"INSERT I requete SQL avec ODBC et MFC [ par julok2 ] Salut à tous,j'utilise un programme où j'ai besoin à un moment d'afficher le contenu de ma base de donnée selon un ordre précis, j'ais donc écrit:int Requete SQL [ par Xneo ] J'aurais souhaiter savoir comment envoyer une requete SQL juste après mettre connecté a ma base de donnée! Pour me connecter j'ai pu me débrouiller ma


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,622 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales