Re: [Python] Query in PyQt
Ora riesco a visualizzare l'errore, ma non capisco cos'è, a me sembra tutto giusto... [Microsoft][ODBC SQL Server Driver][SQL Server]Sintassi non corretta in prossimità della parola chiave 'INNER'. QODBC3: Unable to execute statement questa è la stringa: sqlstringdbo_art_0= UPDATE dbo.articoli_0 INNER JOIN (dbo.listini_art_for ON dbo.articoli_0.cod_art = dbo.listini_art_for.art_cod ) SET dbo.articoli_0.descrizione_2 = %s , dbo.articoli_0.barcode = %s WHERE (dbo.listini_art_for.cod_art_ana = %s ) AND (dbo.listini_art_for.cod_ana = %d ); % (self.dict_articoli[articolo][descrizione],self.dict_articoli[articolo][barcode],articolo,self.codice_fornitore) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Query in PyQt
A quanto pare ho capito... in un forum ho trovato che la struttura delle query da Access a SQLServer cambia, quindi la riga giusta è del tipo sqlstringdbo_art_0=UPDATE dbo.articoli_0 SET dbo.articoli_0.descrizione_2 = '%s' , dbo.articoli_0.barcode = '%s' FROM dbo.articoli_0 INNER JOIN dbo.listini_art_for ON dbo.articoli_0.cod_art = dbo.listini_art_for.art_cod WHERE dbo.listini_art_for.cod_art_ana = '%s' AND dbo.listini_art_for.cod_ana = %d ; %( self.dict_articoli[articolo][descrizione],self.dict_articoli[articolo][barcode],articolo,self.codice_fornitore) In pratica si inverte l'ordine di INNER JOIN e il Where va in fondo... Io usavo il compositore access per crearmi le query :) e quindi ci sono cascato Che fatica però, sento davvero l'esigenza di un debug :) Pier Da: piergiorgio pancino piert...@yahoo.it A: python@lists.python.it python@lists.python.it Inviato: Giovedì 5 Luglio 2012 10:31 Oggetto: Re: Query in PyQt Ora riesco a visualizzare l'errore, ma non capisco cos'è, a me sembra tutto giusto... [Microsoft][ODBC SQL Server Driver][SQL Server]Sintassi non corretta in prossimità della parola chiave 'INNER'. QODBC3: Unable to execute statement questa è la stringa: sqlstringdbo_art_0= UPDATE dbo.articoli_0 INNER JOIN (dbo.listini_art_for ON dbo.articoli_0.cod_art = dbo.listini_art_for.art_cod ) SET dbo.articoli_0.descrizione_2 = %s , dbo.articoli_0.barcode = %s WHERE (dbo.listini_art_for.cod_art_ana = %s ) AND (dbo.listini_art_for.cod_ana = %d ); % (self.dict_articoli[articolo][descrizione],self.dict_articoli[articolo][barcode],articolo,self.codice_fornitore)___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Query in PyQt
Il 05/07/2012 11:24, piergiorgio pancino ha scritto: A quanto pare ho capito... in un forum ho trovato che la struttura delle query da Access a SQLServer cambia, quindi la riga giusta è del tipo sqlstringdbo_art_0=UPDATE dbo.articoli_0 SET dbo.articoli_0.descrizione_2 = '%s' , dbo.articoli_0.barcode = '%s' FROM dbo.articoli_0 INNER JOIN dbo.listini_art_for ON dbo.articoli_0.cod_art = dbo.listini_art_for.art_cod WHERE dbo.listini_art_for.cod_art_ana = '%s' AND dbo.listini_art_for.cod_ana = %d ; %( self.dict_articoli[articolo][descrizione],self.dict_articoli[articolo][barcode],articolo,self.codice_fornitore) In pratica si inverte l'ordine di INNER JOIN e il Where va in fondo... Io usavo il compositore access per crearmi le query :) e quindi ci sono cascato Che fatica però, sento davvero l'esigenza di un debug :) Pier *Da:* piergiorgio pancino piert...@yahoo.it *A:* python@lists.python.it python@lists.python.it *Inviato:* Giovedì 5 Luglio 2012 10:31 *Oggetto:* Re: Query in PyQt Ora riesco a visualizzare l'errore, ma non capisco cos'è, a me sembra tutto giusto... [Microsoft][ODBC SQL Server Driver][SQL Server]Sintassi non corretta in prossimità della parola chiave 'INNER'. QODBC3: Unable to execute statement questa è la stringa: sqlstringdbo_art_0= UPDATE dbo.articoli_0 INNER JOIN (dbo.listini_art_for ON dbo.articoli_0.cod_art = dbo.listini_art_for.art_cod ) SET dbo.articoli_0.descrizione_2 = %s , dbo.articoli_0.barcode = %s WHERE (dbo.listini_art_for.cod_art_ana = %s ) AND (dbo.listini_art_for.cod_ana = %d ); % (self.dict_articoli[articolo][descrizione],self.dict_articoli[articolo][barcode],articolo,self.codice_fornitore) ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python hai mai sentito parlare di sqlalchemy ? dimenticarsi dell' SQL a volte ha i suoi vantaggi : ciao ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Query in PyQt
Il giorno 05 luglio 2012 11:59, Matteo Boscolo matteo.bosc...@boscolini.euha scritto: Che fatica però, sento davvero l'esigenza di un debug :) OT-alcubo sono tornato per un attimo alle notti insonni passate quando sviluppavo con i prodotti di zio bill. Effettivamente ci sta che da casa produttrice a casa produttrice, possa cambiare qualcosa nella sintassi dell'SQL, ma a Redmond sono imbattibili: cambiare la sintassi da prodotto a prodotto... è semplicemente dove vuoi andare (fuori di testa) oggi ?... /OT-alcubo -- Calogero Bonasia in secundis rebus amici nos cognoscunt, in adversis ipsi amicos cognoscimus ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] Query in PyQt
Ciao a tutti , ho un problema con un programmino che sto facendo che importa dei listini da un file di testo ed aggiorna alcune tabelle nel database SQLSERVER. In pratica prima mi inserisco tutti i dati/prezzi che mi servono all'interno di un dizionario, poi faccio l'aggiornamento di una tabella che si trova nel Server e si chiama dbo.listini_art_for e fin qua non ci sono riuscito. Se non ché mi viene in mente che vorrei aggiornare anche delle descrizioni e il codice a barre che però è contenuto in un'altra tabella... E quindi ho agito come segue: Il dizionario si chiama self.dict_articoli e ogni voce contiene a sua volta un piccolo dizionario con altre voci: self.tutti_codici[codice di riferimento]={descrizione,listino,costo,qta_imballo,sconto_1,metel,barcode} Ho creato tre query come segue: self.query=QSqlQuery() #Questa mi seleziona tutti i record del database che voglo aggiornare e con query.next li scorro ad uno a uno self.query_inserimento=QSqlQuery() #Questa mi serve mentre scorro i record per aggiornarli self.query_aggiornamento_dbo_articoli0=QSqlQuery() #Questa vorrei usarla con un Join per aggiornare i dati di un'altra tabella def aggiorna_prezzi(self,dict_articoli): self.dict_articoli=dict_articoli #Il mio dizionario sqlstring=SELECT dbo.listini_art_for.cod_ana, dbo.listini_art_for.cod_art_ana, dbo.listini_art_for.qta_imballo, dbo.listini_art_for.listino, dbo.listini_art_for.sconto_1, dbo.listini_art_for.netto, dbo.listini_art_for.costo FROM dbo.listini_art_for WHERE (((dbo.listini_art_for.cod_ana)={fornitore}));.format(fornitore=self.codice_fornitore) self.query.exec_(sqlstring) #La mia query di selezione che scorre uno ad uno i codici della mia tabella che contiene i prezzi che voglio aggiornare cod_ana,cod_art_ana,qta_imballo,listino,sconto_1,netto,costo =range(7) #campi della query while self.query.next(): articolo=self.query.value(cod_art_ana) if articolo in self.dict_articoli: sqlstring_inserimento=UPDATE dbo.listini_art_for SET dbo.listini_art_for.listino = %f, dbo.listini_art_for.qta_imballo=%f, dbo.listini_art_for.sconto_1 = %f, dbo.listini_art_for.netto = %f, dbo.listini_art_for.costo = %f,dbo.listini_art_for.data_riferimento_prezzo = %r WHERE (dbo.listini_art_for.cod_art_ana='%s')AND(dbo.listini_art_for.cod_ana = %d); % (self.dict_articoli[articolo][listino],self.dict_articoli[articolo][qta_imballo],self.dict_articoli[articolo][sconto_1],self.dict_articoli[articolo][costo],self.dict_articoli[articolo][costo],self.data_oggi,articolo,self.codice_fornitore) self.query_inserimento.exec_(sqlstring_inserimento) #E con questa faccio il mio update, fino a qua funziona self.query_aggiornamento_dbo_articoli0=QSqlQuery() sqlstringdbo_art_0= UPDATE dbo.articoli_0 INNER JOIN dbo.listini_art_for ON dbo.articoli_0.cod_art = dbo.listini_art_for.art_cod SET dbo.articoli_0.descrizione_2 = %s , dbo.articoli_0.barcode = %s WHERE (dbo.listini_art_for.cod_art_ana = %s ) AND (dbo.listini_art_for.cod_ana = %d ); % (self.dict_articoli[articolo][descrizione],self.dict_articoli[articolo][barcode],articolo,self.codice_fornitore) sqlstringdbo_art_0= UPDATE dbo.articoli_0 SET dbo.articoli_0.descrizione_2 = %s , dbo.articoli_0.barcode = %s WHERE (dbo.listini_art_for.cod_art_ana = %s) AND (dbo.listini_art_for.cod_ana = %d ); % (self.dict_articoli[articolo][descrizione],self.dict_articoli[articolo][barcode],articolo,self.codice_fornitore) self.query_aggiornamento_dbo_articoli0.exec_(sqlstringdbo_art_0)#Questa parte non funziona in nessun modo, nemmeno se metto come stringa select * from dbo.articoli_0) #self.db.commit() self.db.close() Però self.query_aggiornamento_dbo_articoli0.isValid() non è mai vero, nemmeno se sostituisco una la stringa con select * from dbo.articoli_0, ho provato e riprovato, ma non funziona, non so cosa pensare... Riporto tutto il codice per completezza, scusate per lo spam___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python