Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : optimisation requete SQL [ Base de données / SQL ] (LaTatadu91)

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é 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 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 sql et c++ [ par gogeta2003 ] Bonjour, J'ai un petit problème, je voudrais insérer des valeurs dans ma base de donnée en passant par un edit, du genre: mySQL=mysql_init(NULL);<br Requete SQL [ par Steph115 ] Bonjour,J'utilise Borland et je veux faire une requete SQL grace au composant TQuery. Ma base de donnees est Access j'utilise le code suivant :SELECT requete sql dans objet sous visual [ par fabsvy ] Bonjour,je suis débutant en c++ et j'aimrai pouvoir insérer une requete sql dans un objet sous visual c++ v6.La base de donnée est sous sql 2000 serve


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 0,577 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.