IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Connexion Javascript Access


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 13
    Points : 5
    Points
    5
    Par défaut Connexion Javascript Access
    Bonjour à Tous,

    je travail actuellement sur un projet ayant pour but de créer une table access via des connexions javascript pour ensuite y insérer des données d'un site internet (ancien post du forum).

    Je ne comprends pas pourquoi la table société se crée alors que la table bilans ne se crée pas.
    Si quelqu'un aurait une idée car je vous avoue ne pas comprendre le phénomène...

    Cordialement Arthur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
     
    var WshShell 		= WScript.CreateObject("WScript.Shell");
    var WsFs     		= WScript.CreateObject("Scripting.FileSystemObject")
     
    var TristateFalse	= 0;
    var ForReading   	= 1;
    var ForWriting  	= 2;
    var ForAppending 	= 8;
     
    var args   			= WScript.Arguments 
    var stdin  			= WScript.StdIn;
    var stdout 			= WScript.StdOut;
    var stderr 			= WScript.StdErr;
    var stdoutHistory	= new Array();
     
    //////////////////////////     CONNEXION DATABASES     ////////////////////////////////////////////////
    var Cnxn 			= WScript.CreateObject("ADODB.Connection");
    var rs 				= WScript.CreateObject("ADODB.recordset");
    var CnxnStr			= new Array();
    	CnxnStr["FILMS"]			="Provider=MSDASQL;Driver={Microsoft Access Driver (*.mdb)};DBQ=Entreprises.mdb";
    	CnxnStr["SRVIGOR_paris"]	="Provider='sqloledb';Data Source=SRVIGOR;Initial Catalog='paris';Integrated Security='SSPI';"
     
    	Cnxn.Open(CnxnStr["FILMS"]);
     
    //////////////////////////      GLOBALES	//////////////////////////////////////////////////////////
     
     
    var CleSocietes =0 ;
    var CleBilans = 0;
    var Interactif 		= null;
     
    //////////////////////// REG EX //////////////////////////////////////////////////////////////////////
     
    var _REGEX_DBLANC	=/  /g;
    var _REGEX_QUOTE	=/\'/g;
    var _REGEX_DQUOTE	=/\"/g;
    var _REGEX_CR		=/\n/g;
    var _REGEX_CRLF		=/[\n\r]/g;
    var _REGEX_Subst	=/\#\%(.+?)\%\#/g;
    var _REGEX_HTMLQUOTE=/"/g;
    var _REGEX_NOMBRE   =/(\d+)/g;
    var _REGEX_ANTISLASH=/\\/g;
    var _REGEX_SPACE    =/ /g;
    var _REGEX_ISSQL    =/^\n?(?:select|insert|update|delete|drop|create)/gi;
    var _REGEX_FichFilmMotCreux=[
    					{er:/ /gi,vr:''},{er:'.',vr:''},{er:/&/gi,vr:''},{er:/-/gi,vr:''},
    					{er:/'/gi,vr:''}];
     
    var _CB_ECHO=function(rs) {
        var strLig='';
    	for(i=0;i< rs.Fields.count;i++)  if (rs.Fields(i).Name.indexOf("_")<0) strLig+=rs.Fields(i).Value;
    	STDERR(strLig);
    }
     
    var SQL=function(cmd,_CB_select,Group) 
    {
    	var noFlash=true;
    	//stderr.WriteLine('SQL:'+cmd);
    	//stdout.Write(SQLExec(p1,true));
    	//stderr.WriteLine('cmd :'+cmd);
    	try {
    		//stderr.WriteLine("SQL:"+cmd);
    		if (rs.State) rs.close();
    		rs.Open(UTF8.decode(cmd),Cnxn,3,-1,1);
    	} catch(err) {
    		showCallStack();
    		stderr.WriteLine('cmd err :'+cmd);
    		stderr.WriteLine('Exec Err : '+err.description+' l='+err.lineNumber );
    		return '' ;
    	}
    	try {
    		var str="";
    		rs.MoveFirst();
    	} catch(err) {
    		 return '';
    	}	
    	try {
    		//stderr.WriteLine('SReq  : '+SReq.length);
    		while (rs.EOF != true) {
    			  if (Group) foreach(Group,	function(elt,ind){
    					elt.EvalGroup(rs);
    					if (elt.curValue !=elt.oldValue ) {
    						if(elt.oldValue && elt.prgFin) {
    							//stderr.WriteLine('Group Fin '+Group[ind].oldValue);
    							rs.MovePrevious();
    							str+=elt.prgFin(rs);
    							rs.MoveNext();
    						} 
    						//stderr.WriteLine('Group Deb '+Group[ind].curValue);
    						if (elt.prgDeb) str+=elt.prgDeb(rs);
    					}
    				}
    			  );
     
    			  if(_CB_select) str+=_CB_select(rs);
    			  rs.MoveNext();
    		}
    		if (Group) foreach(Group,	function(elt,ind){
    			if (elt.prgFin) {
    				rs.MovePrevious();
    				str+=elt.prgFin(rs);
    				rs.MoveNext();
    			}
    		});
    		rs.Close();
    		return str
    	} catch(err) {
    		 showCallStack();
    		 stderr.WriteLine('Retrieve Err : '+err.description);
    		 return '';
    	}
    }
     
    //////////////////////////////////////////////////////////////////////////
     
    function rsSubst(cmd,rs)
    {
    	//STDERR('SQL Subst bal:'+cmd);
    	cmd=cmd.replace(_REGEX_Subst,function(str, p1){
    		return (rs.Fields(p1).Value+'').replace(_REGEX_CR," ");//.replace(_REGEX_QUOTE,"\\'")
    	});
    	return cmd;
    }
     
    function SQLExec(cmd,noFlash)
    {
    	var SReq=null;
     
    	if (cmd.replace(_REGEX_DBLANC,' ')==' ' || cmd=='') return '';
    	if (!cmd) return null;
    	//stderr.WriteLine('cmd:'+cmd);
    	//Parsing Cmd
    	try {
    		if (cmd.indexOf('$')==0) {
    			var Instructions=null; 
    			Instructions=strGetBal(cmd,'$',';').split("{s}");
    			for (Inst=0;Inst<Instructions.length;Inst++) {
    				InstCur=Instructions[Inst].split(/[()]/);
    				p1=strGetBal(Instructions[Inst],"(",")");
    				//stderr.WriteLine('inst:'+Instructions[Inst]);
    				switch (InstCur[0]) {
    					case 'DEFINE':
    						eval(p1+'="'+strGetBal(cmd,"$DEFINE("+p1+');',"$ENDDEFINE;").replace(_REGEX_DQUOTE,'\\"').replace(_REGEX_CR," ")+'"');
    						break;
    					case 'WRITEFILE':
    						REDIRECT(p1);
    						FLASH(strGetBal(cmd,"$WRITEFILE("+p1+');',"$ENDFILE;"));
    						CLOSEREDIRECT();
    						break;
    					default:
    						break;
    				}
    			}
    			return '';
    		} 
     
    		if (cmd.match(_REGEX_ISSQL)) {
    			//STDERR('SQL direct' + cmd);
    			var strLig='';
    			SQL(cmd,function(rs){
    				for(var i=0;i< rs.Fields.count;i++)  
    					if (rs.Fields(i).Name.indexOf("_")<0) 
    						strLig+=rs.Fields(i).Value; 
    				strLig+='\n';
    			});
    			return strLig;
    		} else { 
    			return eval(cmd);
    		}
    	} catch(err) {
    		showCallStack();
    		stderr.WriteLine(cmd);
    		stderr.WriteLine('Exec Err : '+err.description +' l='+err.lineNumber);
    		return '' ;
    	}
    }
     
    function SQLInitCompteurs()
    {
    	CleSocietes = parseInt(SQLExec("select iif(isnull(max(Num)+1),0,max(Num)+1) from Societes"),10);
     
    	return CleSocietes;
    }
     
    function SQLInitCompteurs2()
    {
    	CleBilans = parseInt(SQLExec("select iif(isnull(max(Num)+1),0,max(Num)+1) from Bilans"),18);
     
    	return CleBilans;
    }
     
    function InitDBJSON()
    {
    	dbJSON["TempFilms"]=WsFs.CreateTextFile('html\\tempFilm.js', true,true); 
    }
     
    function SQLProtect(ch)
    {
    	if (ch)	return ch.replace(_REGEX_QUOTE,"''").replace(_REGEX_HTMLQUOTE,"''").replace(_REGEX_DQUOTE,"''");
    	else return '';
    }
     
    function SQLCreerTable()
    {
    	var Req=""
    	var Ret = true ;
     
    	SQLExec("drop table Societes");
    	Req+="create Table Societes (RechercheInitiale varchar(50) null, SIREN varchar(17) null, SIRET varchar(17) null, RaisonSoc varchar(60) not null, Code_Postal varchar(10) null, Ville varchar(60) null, Adresse_Ent varchar(80) null, APE varchar(15) null, Intitule_APE varchar(60) null, Forme_Juridique varchar(60) null)";
    	SQLExec(Req);
    	//SQLExec("create unique index PrimSocietes on Societes (Num)");
    	//CleSocietes=0;
     
    	return Ret;
    }
     
     
    function SQLCreerTable2()
    {
    	var Req=""
    	var Ret = true ;
     
    	SQLExec("drop table Bilans");
    	Req+="create Table Bilans (Nom varchar(100) null, Adresse varchar(100) null, SIRET varchar(100) not null, Actif_Immo_Net varchar(100) null, Immo_Incorp varchar(100) null, Immo_Corp varchar(100) null, Immo_Fi varchar(100) null, Actif_Circ_Net varchar(100) null, Stocks_Encours_Nets varchar(100) null, Avances_Acomptes_Nets varchar(100) null, Creances_Nettes varchar(100) null, Plcmts_Dispo varchar(100) null, Total_Actif varchar(60) null, CP varchar(100) null, Autres_FP varchar(100) null, Prov_RetC varchar(100) null, Dettes varchar(100) null, Total_Passif varchar(100) null)";
    	SQLExec(Req);
     
    	//SQLExec("create unique index PrimBilans on Bilans (Num)");
    	//CleBilans=0;
     
    	return Ret;
    }
     
    // main 
     
    for (var i=0,ArgStr="";i<args.length;ArgStr+=args(i)+" ",i++) ;
    SQLCreerTable2();

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 060
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 060
    Points : 44 585
    Points
    44 585
    Par défaut
    Bonjour,
    si je m'en réfère à
    Je ne comprends pas pourquoi la table société se crée alors que la table bilans ne se crée pas.
    je ne vois pas en quoi cela concerne le javascript.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    Ben quand je créer ma table via ma fonction sqlcreertable ça marche et quand j'utilise la sqlcreertable2 ça ne marche pas alors qu'elles ont la même syntaxe.

  4. #4
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    effectivement ça ne concerne pas directement js

    SQLExec exécute la requête SQL est c'est elle qui ne fonctione propablement pas.

    il faut lire la doc de jscript/vbscript sur msdn
    je pense qu'il faut faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    try {
      result = SQLExec(maRequete);
      // traiter ici le résultat de la requête même un create table retourne quelque chose il me semble.
    } catch (err) {
      //traiter ici l'erreur
    }
    en faisant systématiquement ça tu poura métriser les erreurs de ton code exécuté par access.

    A+JYT

  5. #5
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Points : 6 755
    Points
    6 755
    Par défaut
    La façon de renvoyer une valeur de résultat est un peu maladroite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function SQLCreerTable() {
       var Ret = true;
     
       ...
     
       return Ret;
    }
    Comme ça c'est plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function SQLCreerTable() {
        ...
     
       return true;
    }
    À la lumière de ce qu'a dit Sekaijin, si tu dois utiliser try/catch, tu peux t'en servir pour indiquer que la requête a échoué en renvoyant false :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function SQLCreerTable() {
       try {
          SQLExec( ... );
       } catch (error) {
          ... // traiter l'erreur (par exemple la journaliser ou l'afficher)
          return false;
       }
     
       return true;
    }
    Autre chose : aligne les champs de tes requêtes, ça rendra ton code plus facile à maintenir. En JavaScript, on peut échapper un saut de ligne dans une chaîne comme on échappe tout autre caractère spécial. Du coup on peut faire des chaînes multi-lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
       SQLExec("create Table Societes (\
          RechercheInitiale  varchar(50)  null,\
          SIREN              varchar(17)  null,\
          SIRET              varchar(17)  null,\
          RaisonSoc          varchar(60)  not null,\
          Code_Postal        varchar(10)  null,\
          Ville              varchar(60)  null,\
          Adresse_Ent        varchar(80)  null,\
          APE                varchar(15)  null,\
          Intitule_APE       varchar(60)  null,\
          Forme_Juridique    varchar(60)  null\
       )");

Discussions similaires

  1. [ACCESS] connexion base ACCESS sans VC++ ou BC++ ni wizard
    Par roce dans le forum Autres éditeurs
    Réponses: 3
    Dernier message: 18/03/2007, 23h13
  2. emuler des pages asp avec connexion a access
    Par laville dans le forum ASP
    Réponses: 2
    Dernier message: 01/06/2005, 18h44
  3. pb connexion asp/access
    Par cell dans le forum ASP
    Réponses: 5
    Dernier message: 21/04/2005, 17h31
  4. [C#] Variable javascript accessible
    Par stailer dans le forum ASP.NET
    Réponses: 12
    Dernier message: 01/04/2005, 12h18
  5. [ODBC] Connexion MS-Access sans DSN
    Par Chap$ dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 30/11/2004, 17h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo