Erreur requete sql

Fermé
isa.dama Messages postés 30 Date d'inscription mardi 15 mai 2018 Statut Membre Dernière intervention 27 avril 2023 - Modifié le 12 juin 2018 à 11:14
yg_be Messages postés 22723 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 - 13 juin 2018 à 08:36
Bonjour,
à l'exécussion de mon code je recois le message suivant

les pointages de la table Pointage ne sont pas récupérés !
 INSERT INTO POINTAGEN 
        SELECT * FROM ( SELECT p.Matricule,NbSaisie, p.TypePointage, p.CodeAnalytique, DatePointage, s.Etabl FROM FORAGESTECHNIC.mdb.Pointage p, PayeFORAGESTECHNIC.mdb.Salarie s, PayeFORAGESTECHNIC.mdb.Etablissement e WHERE p.TypePointage IN ('J','R','L') AND s.Matricule=p.Matricule AND p.DatePointage>=e.Z_debpointage AND p.DatePointage<=e.Z_Finpointage AND p.NbSaisie>'0' group by p.CodeAnalytique, p.Matricule,NbSaisie,DatePointage,s.Etabl,p.TypePointage ) AS PN

<souligne>No database selected

pourtant je suis bien connecté aux deuxbases de données
Et la requete fonctionne bien sur access


Voici une partie de mon code
<title></title>
<?php
 session_start();
 /*$conn=odbc_connect('ODBC_FORAGESTECHNIC','Thalia','admin321***'); 
 
 
 $file = "C:\THALIA\Paye82\TEMP\FORAGESTECHNIC/PassComptable.txt";
 $f = fopen($file, 'w');*/
 
  
 $conn_temps=odbc_connect('ODBC_FORAGESTECHNIC','root','') or die ("Impossible de se connecter a la base temps ");
 if (!$conn_temps) {exit("Echec de connection : " . $conn_temps);}
 
    $conn_paye=odbc_connect('ODBC_PayeFORAGESTECHNIC','','') or die ("Impossible de se connecter a la base paye ");
 if (!$conn_paye) {exit("Echec de connection : " . $conn_paye);}

 
  
$req_pointagen="DELETE FROM POINTAGEN";

$tble_pointagen=("INSERT INTO POINTAGEN
SELECT *
FROM (
 SELECT p.Matricule,NbSaisie, p.TypePointage,
p.CodeAnalytique, DatePointage, s.Etabl
FROM FORAGESTECHNIC.mdb.Pointage p, PayeFORAGESTECHNIC.mdb.Salarie s, PayeFORAGESTECHNIC.mdb.Etablissement e
WHERE p.TypePointage IN ('J','R','L') AND s.Matricule=p.Matricule AND p.DatePointage>=e.Z_debpointage AND p.DatePointage<=e.Z_Finpointage AND p.NbSaisie>'0'
group by p.CodeAnalytique, p.Matricule,NbSaisie,DatePointage,s.Etabl,p.TypePointage
 ) AS PN");
 

 
 
/*Affichage du champs nbsaisie de la table POINTAGEN*/
$results = mysql_query($tble_pointagen) or die ('les pointages de la table Pointage ne sont pas récupérés !' .$tble_pointagen. '<br/>' .mysql_error());
while ($row = mysql_fetch_assoc($results)) {
  NbSaisie($row);

}
 
 

 
$req_passnbjour="DELETE FROM PASSNBJOUR";
 
$tble_passnbjour=("INSERT INTO PASSNBJOUR
SELECT *
FROM (
 SELECT p.Matricule, COUNT(p.NbSaisie) as nbjour,  p.CodeAnalytique, p.Etabl
FROM FORAGESTECHNIC.mdb.POINTAGEN p, PayeFORAGESTECHNIC.mdb.Etablissement e
WHERE p.Etabl=e.Code AND p.DatePointage>=e.Z_debpointage AND p.DatePointage<=e.Z_Finpointage
group by p.CodeAnalytique, p.Matricule, p.Etabl
 ) AS PNB");
 
 if (!$tble_passnbjour) {exit("ECHEQUE DE CALCUL DES NOMBRES DE JOUR : " . $tble_passnbjour);}
 
 
$req_salariebv="DELETE FROM SALARIEBV";
  
$tble_salariebv=("INSERT INTO SALARIEBV
SELECT *
FROM (
 SELECT p.Etabl,p.Matricule, '0' AS NumAxe,'1111' AS Rubr, p.CodeAnalytique, CAST(p.NbJour AS nvarchar(3)) AS ExprP,' ' AS ExprD,p.NbJour AS P, '0' AS PSalarie,'0' AS PCharges, 
 '0' AS PGlobale, '0' AS D, '0' AS DSalarie, '0' AS DCharges, p.NbJour AS R,'0' AS RSalarie,'0' AS RCharges,'0' AS RGain,'0' AS RPerte, 
 ' ' AS Lib, CONVERT(smallint,(CONVERT(varchar(1),'0'))) AS Editer
FROM PASSNBJOUR p
 ) AS SBV"); 

/*Insertion de la contreinte thalia nommée ExprP pour permettre de changer le type du champs ExprP de Ntext en nVarchar */
/*$req_contreinteExprP=odbc_exec($conn,"ALTER TABLE PayeFORAGESTECHNICSalarieBulletinValeur DROP  CONSTRAINT ExprP");*/

/*Insertion de la contreinte thalia nommée ExprP pour permettre de changer le type du champs ExprP de Ntext en nVarchar */
/*$req_contreinteExprD=odbc_exec($conn,"ALTER TABLE PayeFORAGESTECHNIC.SalarieBulletinValeur DROP  CONSTRAINT ExprD");*/

/*Changement du type du champs ExprP de Ntext en nVarchar*/
/*$req_formaExprP=odbc_exec($conn,"ALTER TABLE PayeFORAGESTECHNIC.SalarieBulletinValeur ALTER COLUMN ExprP nVARCHAR(30)");*/

/*Changement du type du champs ExprD de Ntext en nVarchar*/
/*$req_formaExprD=odbc_exec($conn,"ALTER TABLE PayeFORAGESTECHNIC.SalarieBulletinValeur ALTER COLUMN ExprD nVARCHAR(30)");*/

/*Vidage de la table PASSERELLE*/
$req_vidage="DELETE FROM Passerelle";
  
/*Insertion des rubriques 1111 dans la table PASSERLLE*/
$req_insert="INSERT INTO PayeFORAGESTECHNIC.mdb.Passerelle SELECT * FROM FORAGESTECHNIC.mdb.SALARIEBV";

/*Insertion des données de la table SalarieBulletinValeur dans la table PASSERELLE*/
$req_insertSalValP="INSERT INTO PayeFORAGESTECHNIC.mdb.Passerelle SELECT * FROM PayeFORAGESTECHNIC.mdb.SalarieBulletinValeur";

if(($req_vidage=($req_vidage))&&($req_insert=($req_insert))&&($insertSalValP=($req_insertSalValP)))
{
 ?>
   <script type="text/javascript">
   alert('Nombre de jour import\é avec succ\ès!');
   document.location.href = 'index.php?page=page_passerelle_traitement';
   </script>
 <?php
 }else{
  
  ?>
   <script type="text/javascript">
    alert('Echec import!!!');
    document.location.href = 'index.php?page=page_affectation_etablissement';
   </script>
       <?php
  }

/*Remise en place de la contrainte ExprP pour le fonctionnement de Thalia paye*/
/*$req_RcontreinteExprP=odbc_exec($conn,"ALTER TABLE PayeFORAGESTECHNIC.SalarieBulletinValeur ADD  CONSTRAINT ExprP DEFAULT ('') FOR [ExprP]");*/


/*Remise en place de la contrainte ExprD pour le fonctionnement de Thalia paye*/
/*$req_RcontreinteExprD=odbc_exec($conn,"ALTER TABLE PayeFORAGESTECHNIC.SalarieBulletinValeur ADD  CONSTRAINT ExprD DEFAULT ('') FOR [ExprD]");*/

?>

EDIT : AJout des balises de code ! Merci d'y penser la prochaine fois...

1 réponse

yg_be Messages postés 22723 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
13 juin 2018 à 08:36
bonjour, je me demande si odbc supporte "insert into select". peut-être faut-il faire le select, et puis un insert pour chaque enregistrement.
0