Visualizzazione dei risultati da 1 a 7 su 7

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di Reiuky
    Registrato dal
    Jul 2008
    Messaggi
    371

    [SQL server + php] errore bho

    è un po' cross disciplina, ma o lo metto qui o su PHP, (o al massimo lo duplico ma non mi pare abbia senso).

    Allora, il problema è questo:

    ho scritto una procedura che fa una serie di operazioni sul database di uno dei miei clienti. So come è fatto il database, ma non ho accesso né al database né al sistema. Io scrivo il programma, lo invio al cliente, il quale autonomamente lo mette nella locazione giusta e lo fa girare.

    Suddetto programma nell'ambiente di test da me funziona. Dal cliente no.

    Ho fatto un log molto verboso proprio perché non è la prima volta che faccio questo giro. Leggendo il log posso affermare che:
    - la connessione al database viene fatta senza errori
    - la query viene eseguita senza errori
    - la query non restituisce nessuna riga

    Stessa query fatta eseguire sul database del cliente restituisce 8 righe.

    Sono ore che mi sto scervellando per capire cosa può essere successo. è possibile che sql server abbia qualche impostazione strana che mi fa restituire un result vuoto pur non dando errore?

    Ricordo che c'erano delle discrepanze tra il risultato fornito nell'interfaccia utente e quello dato sul php, ma erano principalmente legate alle date, e in questo caso non ci sono date.

    La query è questa (cambio un po' i nomi dei campi)
    codice:
    SELECT C1, C2FROM T1
    JOIN T2
      ON ID11 = ID21
     AND ID12 = ID22
    JOIN T3
      ON ID11 = ID31
     AND ID12 = ID32
    WHERE Stato = 0
      AND Profondita = 1
    I nomi dei campi e delle tabelle contengono sia maiuscole che minuscole, ma non mi pare di ricordare che questo costituisca un problema.

    Grazie in anticipo per le risposte.
    A volte penso che, nel darci l'intelletto, la natura sia stata più sadica che generosa.

  2. #2
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Quote Originariamente inviata da Reiuky Visualizza il messaggio
    - la query non restituisce nessuna riga

    Stessa query fatta eseguire sul database del cliente restituisce 8 righe.
    Cioè la query da te non da risultati, dal cliente restituisce 8 righe?
    E questo sarebbe il problema?

  3. #3
    Utente di HTML.it L'avatar di Reiuky
    Registrato dal
    Jul 2008
    Messaggi
    371
    Quote Originariamente inviata da luca200 Visualizza il messaggio
    Cioè la query da te non da risultati, dal cliente restituisce 8 righe?
    E questo sarebbe il problema?
    No.

    La query fatta dal mio programma sul database del cliente non restituisce risultati.

    La stessa query fatta a mano dal cliente sullo stesso database restituisce 8 righe.

    E questo credo che sia quantomai anomalo.
    A volte penso che, nel darci l'intelletto, la natura sia stata più sadica che generosa.

  4. #4
    Quote Originariamente inviata da Reiuky Visualizza il messaggio
    No.

    La query fatta dal mio programma sul database del cliente non restituisce risultati.

    La stessa query fatta a mano dal cliente sullo stesso database restituisce 8 righe.

    E questo credo che sia quantomai anomalo.
    l'utente di database che esegue la query è lo stesso ?

  5. #5
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Una diversa "interpretazione" dello stesso testo da parte di Php e SQLServer ??

    Ma il testo che metti nel 1° post è un Copia/Incolla ??
    Noto che manca uno spazio prima di "FROM"

    Io comunque
    - espliciterei i nomi delle tabelle
    - metterei le parentesi nei JOIN ( anche se inutili )
    - metterei il PuntoVirgola di terminazione query
    codice:
    SELECT 
    T?.C1, 
    T?.C2 
    FROM 
    (
    T1 
    JOIN 
    T2 
    ON 
    T?.ID11 = T?.ID21 
    AND 
    T?.ID12 = T?.ID22
    ) 
    JOIN 
    T3
    ON 
    T?.ID11 = T?.ID31
    AND 
    T?.ID12 = T?.ID32
    WHERE 
    (
    T?.Stato = 0
    AND 
    T?.Profondita = 1
    )
    ;
    Ultima modifica di nman; 12-09-2014 a 12:35

  6. #6
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Quote Originariamente inviata da Reiuky Visualizza il messaggio
    ...... è possibile che sql server abbia qualche impostazione strana che mi fa restituire un result vuoto pur non dando errore? ......
    Se ricordo bene mi è capitato qualche volta di eseguire delle query sintatticamente errete
    da "altri programmi" su SQLServer e il risultato era semplicemente "Nulla"

    Ma la "responsabilità" era dell'altro programma ( in questo caso Php ) che non inoltra il messaggio di errore

    PS:i due numeri della WHERE ( 0 e 1 ) sono numeri testi o booleani ???
    prova a racchiuderli fra apici oppure scrivi True/False
    .

  7. #7
    Utente di HTML.it L'avatar di Reiuky
    Registrato dal
    Jul 2008
    Messaggi
    371
    Quote Originariamente inviata da nman Visualizza il messaggio
    Se ricordo bene mi è capitato qualche volta di eseguire delle query sintatticamente errete
    da "altri programmi" su SQLServer e il risultato era semplicemente "Nulla"

    Ma la "responsabilità" era dell'altro programma ( in questo caso Php ) che non inoltra il messaggio di errore

    PS:i due numeri della WHERE ( 0 e 1 ) sono numeri testi o booleani ???
    prova a racchiuderli fra apici oppure scrivi True/False
    .
    Questo è interessante.

    Stato, effettivamente, è un char, mentre Profondità è un int. Provo in questo modo.

    Grazie 1'000
    A volte penso che, nel darci l'intelletto, la natura sia stata più sadica che generosa.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.