Login mot de passe
Plusieurs questions [forum - Accès natifs]

Parcourir ce sujet :   1 Utilisateur(s) anonymes



(1) 2 »


Plusieurs questions
Animateur
Inscrit:
2005/11/5 17:21
Messages: 130
Hors Ligne
Salut,

J'utilise PHP4WD pour accéder à une DB sqlServer
Tant que je lance des requetes par mysqlexec je n'ai pas de problèmes, cela fonctionne très bien.

J'instancie la classe phpwd en début de projet.
J'utilise comme type de base "PDOSQLSRV"
La tables de la DB sont instanciées de manière dynamique également en début de projet et selon besoins, j'alloue les tables nécessaires et je lance mes procédures..
Impossible de réaliser des matable:sqlinsert ....
J'alloue les tables avant de me connecter au serveur WEB (mysqlconnect) contenant les fichiers connect.php et php4wd.php car si je le fais après la connexion, elles sont mal instanciées et cela plante .....
Y a t'il un ordre bien précis pour instancier toutes ces classes ?

Bref je suis un peu dans la panade là .... j'ai l'impression de passer à côté de quelque chose ....
Dans sqlmanagerX, je ne vois à ausun endroit de "PDOSQLSRV"... ne manque t'il pas ? si oui, y a t'il un sqlmanagerX tout frais qui sort de ton HD quelques part ???? Merci de ton aide ....

Posté le : 2017/5/20 16:34
Transférer la contribution vers d'autres applications Transférer


Re: Plusieurs questions
SQLManagerX Team
Inscrit:
2004/7/1 12:49
De Grenoble (38)
Messages: 2149
Hors Ligne
bonjour,

oui il te manque quelques chose dans SQLManagerX :
dans la partie constructeur tu dois avoir le PDOSQLSRV sinon ca ne marchera pas

CAS  
"C_PHP4WD"     
        
:base = :MySQL:typeBase
        
:BlobTypeMySQL Vrai

        
:MySQL:MySQLDecritTable(:DcaractEspace+:NomTab+:FCaracterEspace,decritColonne)
        
v_squery =:ChaineSGBDR(:DcaractEspace+:NomTab+:FCaracterEspace)
        
SELON :base
            CAS 
"MYSQL","PDOMySQL"     : :DcaractEspace     ="`" ; :FCaracterEspace "`"    
            
CAS "MSSQL","PDOSQLSRV"                 : :DcaractEspace     ="[" ; :FCaracterEspace "]"
                                        
// stephane miqueux a fait cette partie permettant de transformer les resultat renvoyé par le serveur
                                        // sous une forme que windev connait
                                        
:FLOATCONVERT "CONVERT(float,%1,0) AS %2"
                                        
:DATECONVERT "CONVERT(varchar(8), %1, 112)  AS %2"  
                                        
:STANDARD "%1 %2"
                                        
:DATECONVERTWHERE "CONVERT(varchar(8), %1, 112)"  
                                        
:STANDARDWHERE "%1"
                                        
:BLOBCONVERT "CONVERT(VARCHAR, %1,1) "            
            
CAS "POSTGRESQL"             : :DcaractEspace     ="""" ; :FCaracterEspace """"                    
        
FIN

et dans la classe c_php4WD il te faut aussi dans decritTable

FONCTION MySQLDecritTable
(pNomTablepDescription)

LOCAL
    v_SQLQuery         est une chaîne
    v_listeColonne     est une chaîne
    v_retour             est un booléen

i est un entier 
0

SELON Majuscule
(:TypeBase)
    
CAS "MYSQL","PDOMySQL" :
        
v_SQLQuery "DESCRIBE "+pNomTable

    CAS 
"SQLITE" :
        
v_SQLQuery "PRAGMA table_info( '"+pNomTable+"')"
        
i=1

    CAS 
"MSSQL" ,"PDOSQLSRV"
        
        
v_SQLQuery "SELECT "
        
v_SQLQuery +="INFORMATION_SCHEMA.COLUMNS.Column_name,"
        
v_SQLQuery +="INFORMATION_SCHEMA.COLUMNS.data_type,"
        
v_SQLQuery +="INFORMATION_SCHEMA.COLUMNS.is_nullable,"
        
v_SQLQuery +="case"
        
v_SQLQuery +="    when INFORMATION_SCHEMA.KEY_COLUMN_USAGE.column_name is not null then 'PRI' else ''"
        
v_SQLQuery +="end,"
        
v_SQLQuery +="    INFORMATION_SCHEMA.COLUMNS .column_default,"
        
v_SQLQuery +="   ''"
        
v_SQLQuery +="    from INFORMATION_SCHEMA.COLUMNS "
        
v_SQLQuery +="    left join INFORMATION_SCHEMA.KEY_COLUMN_USAGE on "
        
v_SQLQuery +="    INFORMATION_SCHEMA.COLUMNS.table_name= INFORMATION_SCHEMA.KEY_COLUMN_USAGE.table_name"
        
v_SQLQuery +="    and INFORMATION_SCHEMA.COLUMNS.column_name= INFORMATION_SCHEMA.KEY_COLUMN_USAGE.column_name"
        
v_SQLQuery +="    where INFORMATION_SCHEMA.COLUMNS.table_name = '"+pNomTable+"'"
        
    
CAS "POSTGRESQL" :
        
v_SQLQuery "SELECT a.attname, pg_catalog.format_type(a.atttypid, a.atttypmod), not a.attnotnull as Null,"
        
v_SQLQuery += "(SELECT indisprimary FROM pg_index i, pg_class ic, pg_attribute ia  WHERE i.indrelid = a.attrelid AND i.indexrelid = ic.oid AND ic.oid = ia.attrelid AND "
        
v_SQLQuery += "ia.attname = a.attname  AND indisprimary IS NOT NULL  ORDER BY indisprimary DESC LIMIT 1) AS primarykey ,"
        
v_SQLQuery += "(SELECT substring(pg_catalog.pg_get_expr(d.adbin, d.adrelid) for 128) FROM pg_catalog.pg_attrdef d "
        
v_SQLQuery += "WHERE d.adrelid = a.attrelid AND d.adnum = a.attnum AND a.atthasdef) as default  "
        
v_SQLQuery += " FROM pg_catalog.pg_attribute a "
        
v_SQLQuery += "WHERE a.attrelid = (SELECT c.oid FROM pg_catalog.pg_class c LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace "
        
SI ChaîneOccurrence(pNomTable,"."ALORS
            v_SQLQuery 
+= "WHERE c.relname ~ '^"+ExtraitChaîne(pNomTable,2,".")+"$' AND n.nspname ~ '^"+ExtraitChaîne(pNomTable,1,".")+"$')  "
        
SINON
            v_SQLQuery 
+= "WHERE c.relname ~ '^"+pNomTable+"$' AND n.nspname ~ '^public$')  "
        
FIN
        v_SQLQuery 
+= "AND a.attnum > 0 AND NOT a.attisdropped  ORDER BY a.attnum"


    
CAS "ORACLE" :// Oracle
        
v_SQLQuery "SELECT cols.column_name, decode(cols.data_type,'VARCHAR2','VARCHAR2('||cols.data_length||')','CHAR','CHAR('||cols.data_length||')',cols.data_type) data_type, cols.nullable,"
        
v_SQLQuery += " decode(NVL (acc.constraint_type, ''),'P','PRI'), cols.data_default"
        
v_SQLQuery += " FROM all_tab_columns cols,"
        
v_SQLQuery += " (SELECT ac.table_name, column_name, ac.constraint_type"
        
v_SQLQuery += " FROM all_constraints ac, all_cons_columns acc"
        
v_SQLQuery += " WHERE acc.constraint_name = ac.constraint_name"
        
v_SQLQuery += " AND ac.constraint_type = 'P'"
        
v_SQLQuery += " and ac.owner = acc.owner "
        
v_SQLQuery += " and ac.owner = (select user from dual)) acc"
        
v_SQLQuery += " WHERE cols.table_name ='"+Majuscule(pNomTable)+"' "
        
v_SQLQuery += " and cols.owner = (select user from dual)"
        
v_SQLQuery += " AND cols.table_name = acc.table_name(+)"
        
v_SQLQuery += " AND cols.column_name = acc.column_name(+)"
        
v_SQLQuery += " ORDER BY cols.column_id"
        
    
CAS "FB" :
        
v_SQLQuery  =" select"
        
v_SQLQuery +=" f.rdb$field_name,"
        
v_SQLQuery +=" CASE COALESCE(f.rdb$null_flag,'') WHEN '' THEN '' ELSE 'NOT' END,"
        
v_SQLQuery +=" fs.rdb$field_type,"
        
v_SQLQuery +=" fs.rdb$field_sub_type,"
        
v_SQLQuery +=" f.rdb$default_source"
        
v_SQLQuery +=" from rdb$relation_fields f"
        
v_SQLQuery +=" left join rdb$fields fs on fs.rdb$field_name = f.rdb$field_source"
        
v_SQLQuery+=" where f.rdb$relation_name = '"+Majuscule(pNomTable)+"'"
        
v_SQLQuery +=" order by f.rdb$field_position"

        
pDescription=""
        
SI PAS :mySQLExec(v_SQLQuery,0ALORS RENVOYER ""
        
TANTQUE :mySQLFetch(0)    
            
//nom
            
v_listeColonne+=SansEspace(:mySQLLitCol(0,1))+";"

            
//type
            
SELON SansEspace(:mySQLLitCol(0,3))
                
CAS 7,8,10,16,27 v_listeColonne+="NUMBER;"
                
CAS 14,37 :          v_listeColonne+="TEXT;"
                
CAS 12 :           v_listeColonne+="DATE;"
                
CAS 35 :           v_listeColonne+="TIMESTAMP;"
                
CAS 261 SI :mySQLLitCol(0,4) = 0 ALORS v_listeColonne+="BLOB;" SINON    v_listeColonne+="TEXT;"
            
FIN

            
//nullable
            
v_listeColonne+=SansEspace(:mySQLLitCol(0,2))+";"

            
//pri
            
v_SQLQuery  " select i.rdb$field_name"
            
v_SQLQuery += " from rdb$relation_constraints rc, rdb$index_segments i,rdb$indices idx"
            
v_SQLQuery += " where i.rdb$index_name = rc.rdb$index_name and"
            
v_SQLQuery += " idx.rdb$index_name = rc.rdb$index_name and"
            
v_SQLQuery += " rc.rdb$constraint_type = 'PRIMARY KEY' and"
            
v_SQLQuery += " rc.rdb$relation_name ='"+Majuscule(pNomTable)+"' and "
            
v_SQLQuery += " i.rdb$field_name ='"+Majuscule(SansEspace(:mySQLLitCol(0,1)))+"'"
            
SI PAS :mySQLExec(v_SQLQuery,1ALORS SORTIR
            SI 
:mySQLFetch(1ALORS
                v_listeColonne
+="PRI;"
            
SINON
                v_listeColonne
+=";"
            
FIN
            
:mySQLFerme(1)
            
v_listeColonne+=SansEspace(:MySQLLitColLong(0,5))+";"
            
v_listeColonne+=RC
        FIN
FIN


SI v_SQLQuery 
<> "" ALORS
    
// execution de la requete qui recupere le nom des tables
    
v_retour = :mySQLExecv_SQLQuery1)
    
SI v_retour
        
:mySQLPremier(1)
        
TANTQUE PAS :mySQLEnDehors
            v_listeColonne 
+= :mySQLLitCol(1i+1)+";"
            
v_listeColonne += :mySQLLitCol(1i+2)+";"
            
v_listeColonne += :mySQLLitCol(1i+3)+";"
            
v_listeColonne += :mySQLLitCol(1i+4)+";"
            
SI  Majuscule(:TypeBase)= "SQLITE" ET SansEspace(:mySQLLitCol(0,i+2))="INTEGER" ET Val(:mySQLLitCol(0,i+5))>0 ALORS
                v_listeColonne 
+=  "auto_increment;"
            
SINON
                v_listeColonne 
+= :mySQLLitCol(1i+5)+";"RC    
            FIN
            
            
:mySQLSuivant(1)
        
FIN
        
:mySQLFerme(1)
    
FIN
FIN
pDescription 
v_listeColonne
RENVOYER 
(v_retour)

ensuite le bon ordre est :
connexion de l'acces natif
ensuite declaration des objets tables

en fait j'ai oublié de faire une version SQLManagerX depuis la mise en place de PDO (et donc aussi ADO ) dans php4WD. mais ma classe perso elle a tout (je peux pas la livrée car elle conteint des truc en plus) mais je vais reporter les modification

effectivement ceux qui utilisent php4wd et SQLManaerX avec PDO seront dans le meme cas

Posté le : 2017/5/20 16:51
_________________
----------
Firetox
8 rue Georges Méliès
38130 ECHIROLLES
..............................
http://emidev.fr
http://www.teecod.fr/web/Informatique/accueil
Transférer la contribution vers d'autres applications Transférer


Re: Plusieurs questions
Animateur
Inscrit:
2005/11/5 17:21
Messages: 130
Hors Ligne
Resalut,

En fait j'ai soucis avec le SQLLitRecherche.

La requete crée dans donne ceci:

SELECT [TreatmentID],[],[NO],[PrescriptionBaseID],[],[YES],[SessionStartTime],[],[YES],[EKeyID],[],[YES],[MachineType],[],[YES],[MachineNr],[],[YES],[TreatmentStopTime],[],[YES],[NumDialysisData],[],[YES],[Conductivity],[],[YES],[UFVol],[],[YES],[ArtPressure],[],[YES],[TMP],[],[YES],[Bloodflow],[],[YES],[PreWeight],[],[YES],[TargetWeight],[],[YES],[UFTime],[],[YES],[BloodPressureDates],[],[YES],[SystBloodPress],[],[YES],[MapBloodPress],[],[YES],[Position],[],[YES],[PreSystBloodPress],[],[YES],[PreMapBloodPress],[],[YES],[PostSystBloodPress],[],[YES],[PostMapBloodPress],[],[YES],[NumBloodTempData],[],[YES],[ArtFistulaTemp],[],[YES],[Recirculation],[],[YES],[BTMEnergyTarget],[],[YES],[NumRecirculationData],[],[YES],[RecirculationValues],[],[YES],[PreQuCodes],[],[YES],[PostQuCodes],[],[YES],[NumMedications],[],[YES],[Medications],[],[YES],[Complications],[],[YES],[ComplicationTimes],[],[YES],[ManualEntriesDates],[],[YES],[ManualEntries],[],[YES],[AvgBloodFlow],[],[YES],[TotalUFVol],[],[YES],[AvgDiaTemp],[],[YES],[AvgVenPressure],[],[YES],[AvgUFRate],[],[NO],[PrcTrtDuration],[],[YES],[TrtTypeID],[],[YES],[BloodNeedleArtID],[],[YES],[BloodNeedleSNID],[],[YES],[BloodSystemVenID],[],[YES],[Concentrate1ID],[],[YES],[SuppConcentrateID],[],[YES],[SubstituateID],[],[YES],[AnticoagulationID],[],[YES],[MachineNatrium],[],[YES],[HDFTimes],[],[YES],[HDFBolus],[],[YES],[HDFType],[],[YES],[OLCTimes],[],[YES],[OLCSPKtV],[],[YES],[OLCPlasmaNa],[],[YES],[OLCHct],[],[YES],[OLCavgKeu],[],[YES],[OLCavgHCT],[],[YES],[BVMSamples],[],[YES],[BVMBloodVol],[],[YES],[BVMHct],[],[YES],[BVMProtein],[],[YES],[OLCKt],[],[YES],[AnticoagulationRate],[],[YES],[Comment],[],[YES],[HDTreatmentTypeID],[],[YES],[BillingRemarks],[],[YES],[TransportFromDialysisID],[],[YES],[ShiftID],[],[YES],[KtVTarget],[],[YES],[HasChecklistDocu],[],[YES],[UserID],[],[YES],[UKinURR],[],[YES],[UKinEKtV],[],[YES],[UKinENPCR],[],[YES],[UKinTAC],[],[YES],[EKtVTarget],[],[YES],[URRMeasured],[],[YES],[CritLineAvgOxygenSaturation],[],[YES],[CritLineAvgRecirculation],[],[YES],[CritLineDeltaBloodVolResult],[],[YES],[NaPrescribed],[],[YES],[BicPrescribed],[],[YES],[UFProfile],[],[YES],[ISOVol],[],[YES],[HDFHDTime],[],[YES],[HDFPostTime],[],[YES],[HFPostTime],[],[YES],[HDFSubstRate],[],[YES],[HDFPostSubstVol],[],[YES],[BVMCritRBV],[],[YES],[BVMInitHct],[],[YES],[BVMInitHb],[],[YES],[AnticoagulationTotalBolus],[],[YES],[SNStrokeVol],[],[YES],[BCMMeasDateTime],[],[YES],[BCMOverHydrationPost],[],[YES],[BCMOverHydrationPostRel],[],[YES],[BCMUreaDistVol],[],[YES],[BCMAdiposeTissueMass] FROM [DialysisTreatmentData] Where EKeyID='31675' AND TreatmentDate='2017-05-21' AND EffectiveDiaTime<>0

Avec des [ ] qui sont refusés par sqlServer d'où une erreur Interne 500 au serveur ......
J'ai essayé de transformer les [ ] en [' '] mais cela ne semble guère fonctionner .....

Posté le : 2017/5/21 15:24
Transférer la contribution vers d'autres applications Transférer


Re: Plusieurs questions
SQLManagerX Team
Inscrit:
2004/7/1 12:49
De Grenoble (38)
Messages: 2149
Hors Ligne
bon je regarde demain
ùmais visiblement tu as un probleme sur la methode decritable car dans le sqllitrecherche il devrait prendre le nom de la colonne alors que tu as nomdela colonne, valeur defaut, nulllable

en fait a la place de [TreatmentID],[],[NO],
tu devrait avori [TreatmentID] uniquement je vois pas pourquoi il te donne cela dans le nom de la coonne (le membre :nomCol[i] ) dans le membre SQLManagerX

cela provient de la methode DecritTable
je look cela a mon retour : je dois m'absenter ce soir

cdlt je vais voir avec ma classe SQLManagerX

Posté le : 2017/5/21 17:59
_________________
----------
Firetox
8 rue Georges Méliès
38130 ECHIROLLES
..............................
http://emidev.fr
http://www.teecod.fr/web/Informatique/accueil
Transférer la contribution vers d'autres applications Transférer


Re: Plusieurs questions
Animateur
Inscrit:
2005/11/5 17:21
Messages: 130
Hors Ligne
ou dans ChaineSGBDR ?

Posté le : 2017/5/21 18:04
Transférer la contribution vers d'autres applications Transférer


Re: Plusieurs questions
Animateur
Inscrit:
2005/11/5 17:21
Messages: 130
Hors Ligne
Il y a des retours chariots qui se baladent et qui triplent le nombre de rubrique ... le problème vient de php4wd;php ... je cherche ....

TreatmentID;nvarchar;NO;PRI;;
;rowguid;uniqueidentifier;NO;;
;(newid());PrescriptionBaseID;uniqueidentifier;;
YES;;;PrescriptionProfileID;;
uniqueidentifier;YES;;;;
SessionStartTime;datetime;YES;;;
;PrescriptionID;bigint;YES;;
;;EKeyID;int;;
NO;;;TreatmentDate;;
datetime;YES;;;;
MachineType;nvarchar;YES;;;
;MachineSNr;nvarchar;YES;;
;;MachineNr;nvarchar;;
YES;;;TreatmentStartTime;;
datetime;YES;;;;
TreatmentStopTime;datetime;YES;;;
;EffectiveDiaTime;smallint;YES;;
;;NumDialysisData;smallint;;
YES;;;DialysisDataTimes;;
ntext;YES;;;;
Conductivity;ntext;YES;;;
;DiaTemp;ntext;YES;;
;;UFVol;ntext;;
YES;;;BloodVol;;
ntext;YES;;;;
ArtPressure;ntext;YES;;;
;VenPressure;ntext;YES;;
;;TMP;ntext;;
YES;;;DiaFlow;;
ntext;YES;;;;
Bloodflow;ntext;YES;;;
;UFRate;ntext;YES;;
;;PreWeight;float;;
YES;;;PostWeight;;
float;YES;;;;
TargetWeight;float;YES;;;
;CalcUF;smallint;YES;;
;;UFTime;smallint;;
YES;;;NumBloodPressureData;;
smallint;YES;;;;
BloodPressureDates;ntext;YES;;;
;BloodPressureTimes;ntext;YES;;
;;SystBloodPress;ntext;;
YES;;;DiastBloodPress;;
ntext;YES;;;;
MapBloodPress;ntext;YES;;;
;Pulse;ntext;YES;;
;;Position;ntext;;
YES;;;PrePost;;
ntext;YES;;;;
PreSystBloodPress;smallint;YES;;;
;PreDiastBloodPress;smallint;YES;;
;;PreMapBloodPress;smallint;;
YES;;;PrePulseRate;;
smallint;YES;;;;
PostSystBloodPress;smallint;YES;;;
;PostDiastBloodPress;smallint;YES;;
;;PostMapBloodPress;smallint;;
YES;;;PostPulseRate;;
smallint;YES;;;;
NumBloodTempData;smallint;YES;;;
;BloodTempTimes;ntext;YES;;
;;ArtFistulaTemp;ntext;;
YES;;;VenFistulaTemp;;
ntext;YES;;;;
Recirculation;float;YES;;;
;BodyTemp;ntext;YES;;
;;BTMEnergyTarget;ntext;;
YES;;;BTMTempTarget;;
ntext;YES;;;;
NumRecirculationData;smallint;YES;;;
;RecirculationTimes;ntext;YES;;
;;RecirculationValues;ntext;;
YES;;;RecirculationBloodFlow;;
ntext;YES;;;;
PreQuCodes;nvarchar;YES;;;
;PreAnswers;nvarchar;YES;;
;;PostQuCodes;nvarchar;;
YES;;;PostAnswers;;
nvarchar;YES;;;;
NumMedications;smallint;YES;;;
;MedicationTimes;ntext;YES;;
;;Medications;ntext;;
YES;;;NumComplications;;
smallint;YES;;;;
Complications;ntext;YES;;;
;ComplicationDates;ntext;YES;;
;;ComplicationTimes;ntext;;
YES;;;NumManualEntries;;
smallint;YES;;;;
ManualEntriesDates;ntext;YES;;;
;ManualEntriesTimes;ntext;YES;;
;;ManualEntries;ntext;;
YES;;;TotalBloodVol;;
real;YES;;;;
AvgBloodFlow;real;YES;;;
;AvgDiaFlow;real;YES;;
;;TotalUFVol;real;;
YES;;;AvgConductivity;;
real;YES;;;;
AvgDiaTemp;real;YES;;;
;AvgArtPressure;real;YES;;
;;AvgVenPressure;real;;
YES;;;AvgTMP;;
real;YES;;;;
AvgUFRate;real;YES;;;
;BillingDone;bit;NO;;
;;PrcTrtDuration;nvarchar;;
YES;;;PrcTrtTypeID;;
bigint;YES;PRI;;;
TrtTypeID;bigint;YES;PRI;;
;MachineID;bigint;YES;;
PRI;;BloodNeedleArtID;bigint;;
YES;PRI;;BloodNeedleVenID;;
bigint;YES;PRI;;;
BloodNeedleSNID;bigint;YES;PRI;;
;BloodSystemArtID;bigint;YES;;
PRI;;BloodSystemVenID;bigint;;
YES;PRI;;DialyzerID;;
bigint;YES;PRI;;;
Concentrate1ID;bigint;YES;PRI;;
;Concentrate2ID;bigint;YES;;
PRI;;SuppConcentrateID;bigint;;
YES;PRI;;BicarbonateID;;
bigint;YES;PRI;;;
SubstituateID;bigint;YES;PRI;;
;ShuntID;bigint;YES;;
;;AnticoagulationID;bigint;;
YES;;;CalcUFVolume;;
int;YES;;;;
MachineNatrium;float;YES;;;
;HDFSamples;smallint;YES;;
;;HDFTimes;ntext;;
YES;;;HDFVol;;
ntext;YES;;;;
HDFBolus;ntext;YES;;;
;HDFRate;ntext;YES;;
;;HDFType;smallint;;
YES;;;OLCSamples;;
smallint;YES;;;;
OLCTimes;ntext;YES;;;
;OLCKeu;ntext;YES;;
;;OLCSPKtV;ntext;;
YES;;;OLCeKtV;;
ntext;YES;;;;
OLCPlasmaNa;ntext;YES;;;
;OLCVSA;float;YES;;
;;OLCHct;ntext;;
YES;;;OLCKoA;;
ntext;YES;;;;
OLCavgKeu;float;YES;;;
;OLCavgPlasmaNa;float;YES;;
;;OLCavgHCT;float;;
YES;;;OLCavgKoA;;
int;YES;;;;
BVMSamples;smallint;YES;;;
;BVMTimes;ntext;YES;;
;;BVMBloodVol;ntext;;
YES;;;BVMHb;;
ntext;YES;;;;
BVMHct;ntext;YES;;;
;BVMWaterConc;ntext;YES;;
;;BVMProtein;ntext;;
YES;;;SodiumConc;;
ntext;YES;;;;
OLCKt;ntext;YES;;;
;Summary;image;YES;;
;;AnticoagulationRate;float;;
YES;;;AnticoagulationVolume;;
float;YES;;;;
Comment;nvarchar;YES;;;
;StandstillTime;smallint;YES;;
;;HDTreatmentTypeID;uniqueidentifier;;
YES;PRI;;HDTreatmentMethodID;;
uniqueidentifier;YES;PRI;;;
BillingRemarks;nvarchar;YES;;;
;TransportToDialysisID;uniqueidentifier;YES;;
PRI;;TransportFromDialysisID;uniqueidentifier;;
YES;PRI;;Exported;;
bit;YES;;;;
ShiftID;uniqueidentifier;YES;;;
;ExportRemarks;nvarchar;YES;;
;;KtVTarget;float;;
YES;;;KtVMeasured;;
float;YES;;;;
HasChecklistDocu;bit;YES;;;
;ModificationDateTime;datetime;YES;;
;;UserID;uniqueidentifier;;
YES;;;UKinV;;
real;YES;;;;
UKinURR;real;YES;;;
;UKinSpKtV;real;YES;;
;;UKinEKtV;real;;
YES;;;UKinEKrtV;;
real;YES;;;;
UKinENPCR;real;YES;;;
;UKinEPCR;real;YES;;
;;UKinTAC;real;;
YES;;;UKinTAD;;
real;YES;;;;
EKtVTarget;float;YES;;;
;EKtVMeasured;float;YES;;
;;URRMeasured;float;;
YES;;;EURRMeasured;;
float;YES;;;;
CritLineAvgOxygenSaturation;float;YES;;;
;CritLineAvgAccessFlow;float;YES;;
;;CritLineAvgRecirculation;float;;
YES;;;CritLineHctResult;;
float;YES;;;;
CritLineDeltaBloodVolResult;float;YES;;;
;ReinfusionVol;smallint;YES;;
;;NaPrescribed;float;;
YES;;;NaProfile;;
smallint;YES;;;;
BicPrescribed;real;YES;;;
;UFGoal;smallint;YES;;
;;UFProfile;smallint;;
YES;;;ISOTime;;
smallint;YES;;;;
ISOVol;int;YES;;;
;ISORate;smallint;YES;;
;;HDFHDTime;smallint;;
YES;;;HDFPreTime;;
smallint;YES;;;;
HDFPostTime;smallint;YES;;;
;HFPreTime;smallint;YES;;
;;HFPostTime;smallint;;
YES;;;HDFSubstVol;;
float;YES;;;;
HDFSubstRate;float;YES;;;
;HDFBolusVol;int;YES;;
;;HDFPostSubstVol;int;;
YES;;;HDFPostSubstProportion;;
smallint;YES;;;;
BVMCritRBV;smallint;YES;;;
;BVMMinRBV;float;YES;;
;;BVMInitHct;float;;
YES;;;BVMFinalHct;;
float;YES;;;;
BVMInitHb;float;YES;;;
;BVMFinalHb;float;YES;;
;;AnticoagulationTotalBolus;smallint;;
YES;;;SNClickClackTime;;
smallint;YES;;;;
SNStrokeVol;int;YES;;;
;KtMeasured;float;YES;;
;;BCMMeasDateTime;datetime;;
YES;;;BCMOverHydration;;
float;YES;;;;
BCMOverHydrationPost;float;YES;;;
;BCMOverHydrationRel;float;YES;;
;;BCMOverHydrationPostRel;float;;
YES;;;BCMNormoWeight;;
float;YES;;;;
BCMUreaDistVol;float;YES;;;
;BCMLeanTissueMass;float;YES;;
;;BCMAdiposeTissueMass;float;;

Posté le : 2017/5/21 18:30
Transférer la contribution vers d'autres applications Transférer


Re: Plusieurs questions
Animateur
Inscrit:
2005/11/5 17:21
Messages: 130
Hors Ligne
Et quand je liste uniquement la rubrique 1 de la requete de decrittable (c-à-dire le libelle de la rubrique) :

TreatmentID

NO
PrescriptionBaseID

YES
SessionStartTime

YES
EKeyID

YES
MachineType

YES
MachineNr

YES
TreatmentStopTime

YES
NumDialysisData

YES
Conductivity

YES
UFVol

YES
ArtPressure

YES
TMP

YES
Bloodflow

YES
PreWeight

YES
TargetWeight

YES
UFTime

YES
..... ou on récupère des valeurs correspondantes au -nullable, key primary ..... Il y a au moins 2 RC de trop !

Posté le : 2017/5/21 18:41
Transférer la contribution vers d'autres applications Transférer


Re: Plusieurs questions
SQLManagerX Team
Inscrit:
2004/7/1 12:49
De Grenoble (38)
Messages: 2149
Hors Ligne
oui chaine SGBDR qui ne prend pas en compte SQLserveur par PDO
voici le code de la methode :

PROCEDURE PRIVÉE ChaineSGBDR
(p_nomtable est chaîne)
sRetour est une chaîne


SELON 
:base
    CAS 
"MYSQL","PDOMySQL" :
        
sRetour "DESCRIBE "+p_nomtable
        
    CAS 
"SQLITE" :
        
sRetour "PRAGMA table_info(' "+p_nomtable+"')"
        
    
CAS "MSSQL","PDOSQLSRV" 
        
sRetour+=  "select "
        
sRetour+=  "cols.Column_name, "
        
sRetour+=  "cols.data_type, "
        
sRetour+=  "cols.Character_maximum_length, "
        
sRetour+=  "cols.is_nullable, "
        
sRetour+=  "CASE "
        
sRetour+=  "    WHEN tbl_const.constraint_type is NOT Null THEN 'PRI' ELSE '' "
        
sRetour+=  "    END, "
        
sRetour+=  "    cols.column_default, "
        
sRetour+=  "CASE "
        
sRetour+=  "    WHEN auto_inc.name is NOT Null THEN 'T' ELSE '' "
        
sRetour+=  "    END "
        
sRetour+=  " "
        
sRetour+=  "    from INFORMATION_SCHEMA.COLUMNS cols "
        
sRetour+=  "    Left join (INFORMATION_SCHEMA.KEY_COLUMN_USAGE key_col_usage join  "
        
sRetour+=  "    INFORMATION_SCHEMA.TABLE_CONSTRAINTS tbl_const on "
        
sRetour+=  "    tbl_const.constraint_name = key_col_usage.constraint_name AND "
        
sRetour+=  "    tbl_const.constraint_type = 'PRIMARY KEY') on "
        
sRetour+=  " "
        
sRetour+=  "    cols.table_name    = key_col_usage.table_name AND "
        
sRetour+=  "    cols.column_name= key_col_usage.column_name "
        
sRetour+=  "    Left join (SELECT syscolumns.name "
        
sRetour+=  "    FROM syscolumns "
        
sRetour+=  "    WHERE (status & 128) = 128 AND "
        
sRetour+=  "    OBJECT_NAME(id) = '%1') as auto_inc on auto_inc.name = cols.column_name "
        
sRetour+=  "    WHERE cols.table_name = '%1' "
        
sRetour ChaîneConstruit(sRetourp_nomtable)

    
CAS "POSTGRESQL" 

        
sRetour "SELECT a.attname, pg_catalog.format_type(a.atttypid, a.atttypmod), not a.attnotnull as ""Null"", "
        
sRetour += "(SELECT substring(pg_catalog.pg_get_expr(d.adbin, d.adrelid) for 128) FROM pg_catalog.pg_attrdef d "
        
sRetour += "WHERE d.adrelid = a.attrelid AND d.adnum = a.attnum AND a.atthasdef) as default, "
        
sRetour += "(SELECT indisprimary FROM pg_index i, pg_class ic, pg_attribute ia  WHERE i.indrelid = a.attrelid AND i.indexrelid = ic.oid AND ic.oid = ia.attrelid AND "
        
sRetour += "ia.attname = a.attname  AND indisprimary IS NOT NULL  ORDER BY indisprimary DESC LIMIT 1) AS primarykey FROM pg_catalog.pg_attribute a "
        
sRetour += "WHERE a.attrelid = (SELECT c.oid FROM pg_catalog.pg_class c LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace "
        
// permet de travailler avec les schémas de Postgresql
        
SI ChaîneOccurrence(p_nomtable,"."ALORS
            sRetour 
+= "WHERE c.relname ~ '^"+ExtraitChaîne(p_nomtable,2,".")+"$' AND n.nspname ~ '^"+ExtraitChaîne(p_nomtable,1,".")+"$')  "
        
SINON
            sRetour 
+= "WHERE c.relname ~ '^"+p_nomtable+"$' AND n.nspname ~ '^public$')  "
        
FIN
        sRetour 
+= "AND a.attnum > 0 AND NOT a.attisdropped  ORDER BY a.attnum"
                
FIN
RENVOYER sRetour


dans le code avec PDOMySQL car c'est ce qu'il faut checher car tu as le cas pour MSSQL et donc il faut rajouter PDOSQLSRV j'en ai trouver quelque une dans ma classe avec PDOSQLSRV

dans la classe c_php4wd :
DecritTable
escapeString
ListeTable

dans SQLManagerX :
constructeur
chaineSGBDR
SQLInsert
SQLLitBloque

DumpMemoire
TansfertStructure

les dexu derniere tu dois pas les avoir
car elle sont dans ma classe privée

Posté le : 2017/5/21 19:28
_________________
----------
Firetox
8 rue Georges Méliès
38130 ECHIROLLES
..............................
http://emidev.fr
http://www.teecod.fr/web/Informatique/accueil
Transférer la contribution vers d'autres applications Transférer


Re: Plusieurs questions
Animateur
Inscrit:
2005/11/5 17:21
Messages: 130
Hors Ligne
J'avais déjà corrigé ... rien n'y fait mais tu sembles envoyer une rubrique '' dans le decrittable qui ne reinet pas dans l'intitulé des colonnes mais bien dans les valeurs d'où un décalage .... c'est un des problèmes ....

Posté le : 2017/5/21 20:04
Transférer la contribution vers d'autres applications Transférer


Re: Plusieurs questions
SQLManagerX Team
Inscrit:
2004/7/1 12:49
De Grenoble (38)
Messages: 2149
Hors Ligne
ha oui tu as raison
dans ma classe c_php4wd j'avais fais ca :

CAS 
"MSSQL" ,"PDOSQLSRV"
        
        
v_SQLQuery "SELECT "
        
v_SQLQuery +="INFORMATION_SCHEMA.COLUMNS.Column_name,"
        
v_SQLQuery +="INFORMATION_SCHEMA.COLUMNS.data_type,"
        
v_SQLQuery +="INFORMATION_SCHEMA.COLUMNS.is_nullable,"
        
v_SQLQuery +="case"
        
v_SQLQuery +="    when INFORMATION_SCHEMA.KEY_COLUMN_USAGE.column_name is not null then 'PRI' else ''"
        
v_SQLQuery +="end as primary",
        
v_SQLQuery +="    INFORMATION_SCHEMA.COLUMNS .column_default,"
        
v_SQLQuery +="   '' as autoIncremet"
        
v_SQLQuery +="    from INFORMATION_SCHEMA.COLUMNS "
        
v_SQLQuery +="    left join INFORMATION_SCHEMA.KEY_COLUMN_USAGE on "
        
v_SQLQuery +="    INFORMATION_SCHEMA.COLUMNS.table_name= INFORMATION_SCHEMA.KEY_COLUMN_USAGE.table_name"
        
v_SQLQuery +="    and INFORMATION_SCHEMA.COLUMNS.column_name= INFORMATION_SCHEMA.KEY_COLUMN_USAGE.column_name"
        
v_SQLQuery +="    where INFORMATION_SCHEMA.COLUMNS.table_name = '"+pNomTable+"'"


il faut nommér toutes le colonnes

faut vraiement que je prenne le temps de coparer les classes que j'utilise en prod et celle que j'ai
j'arrive a comprendre pourquoi y a des bug dans windev : les changement entraine des modif partout que je regle sur mes projets et que je repporte pas toujours

Posté le : 2017/5/21 20:12
_________________
----------
Firetox
8 rue Georges Méliès
38130 ECHIROLLES
..............................
http://emidev.fr
http://www.teecod.fr/web/Informatique/accueil
Transférer la contribution vers d'autres applications Transférer



 Haut   Précédent   Suivant
(1) 2 »




[Recherche avancée]