Domanda

Sto usando Zeoslib in Delphi per accedere a un database MySQL locale.

I chiamare una stored procedure con l'oggetto TZQuery:

ZMakeRankedTable.SQL.Text :=
  'CALL MakeRankedTable(:tableA,:tableB,:SAMP_startTime,:SAMP_endTime,:Hourspan)';   

Questa procedura stored finisce per riempire una tabella MySQL con valori.

Ho bisogno di accedere a questi valori, ma non ho idea di quando MySQL è terminata l'elaborazione della query. Io alla fine l'accesso alla tabella di prima trasformazione è completa.

C'è una proprietà .IsAvailable o .IsExecuting posso accedere per determinare se la mia domanda è stata completata? Se no, allora come posso fare?

È stato utile?

Soluzione

Non c'è alcuna proprietà disponibili che indica che la query è ancora in esecuzione. Ma quando il comando termina ZMakeRankedTable.Execute mysql dovrebbe essere pronto l'elaborazione della stored procedure. Così vedo solo 3 situazioni in cui è possibile accedere alla tabella mysql, mentre il risultato della procedura non sono ancora disponibili.

  • query da un filo parallelo
  • Si sta interrogando da un'altra connessione, ma la transazione del 'Collegamento proc memorizzato' non è finito (senza autocommit né commettere successo)
  • I tuoi lanci proc memorizzato un processo ritardato e ritorna subito. Il che è improbabile, come è necessario fare un po 'di lavoro per avere questo effetto in MySQL.

mdaems

Progetto Admin Zeoslib

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top