I have a procedure that takes 5 minutes to run, it is called every time that a certain page is called(web project C#) but it takes to much time to the page to load, and it's a nonQuery is there a way to continue the execution without need to wait the procedure finish
Thanks
This is the code of my program.
public void atribui_valor(string cliente, string segundos)
{
string sql="ADDLOCALIDADE";SqlCommand cmd=
new SqlCommand(sql, conn);conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
And this the procedure..
PROCEDURE ADDLOCALIDADE
AS
UPDATE PABX SET LOCALIDADE = (SELECT CIDADE FROM LOCALIDADES WHERE PREFIXO = LEFT(PABX.NRTELEFONE,8)), CLASSIFICA = (SELECT COD_TIPO FROM LOCALIDADES WHERE PREFIXO = LEFT(PABX.NRTELEFONE,8)) WHERE LOCALIDADE IS NULL
UPDATE PABX SET LOCALIDADE = (SELECT CIDADE FROM LOCALIDADES WHERE PREFIXO = LEFT(PABX.NRTELEFONE,7)), CLASSIFICA = (SELECT COD_TIPO FROM LOCALIDADES WHERE PREFIXO = LEFT(PABX.NRTELEFONE,7)) WHERE LOCALIDADE IS NULL
UPDATE PABX SET LOCALIDADE = (SELECT CIDADE FROM LOCALIDADES WHERE PREFIXO = LEFT(PABX.NRTELEFONE,6)), CLASSIFICA = (SELECT COD_TIPO FROM LOCALIDADES WHERE PREFIXO = LEFT(PABX.NRTELEFONE,6)) WHERE LOCALIDADE IS NULL
UPDATE PABX SET LOCALIDADE = (SELECT CIDADE FROM LOCALIDADES WHERE PREFIXO = LEFT(PABX.NRTELEFONE,5)), CLASSIFICA = (SELECT COD_TIPO FROM LOCALIDADES WHERE PREFIXO = LEFT(PABX.NRTELEFONE,5)) WHERE LOCALIDADE IS NULL
UPDATE PABX SET LOCALIDADE = (SELECT CIDADE FROM LOCALIDADES WHERE PREFIXO = LEFT(PABX.NRTELEFONE,4)), CLASSIFICA = (SELECT COD_TIPO FROM LOCALIDADES WHERE PREFIXO = LEFT(PABX.NRTELEFONE,4)) WHERE LOCALIDADE IS NULL
UPDATE PABX SET LOCALIDADE = (SELECT CIDADE FROM LOCALIDADES WHERE PREFIXO = LEFT(PABX.NRTELEFONE,3)), CLASSIFICA = (SELECT COD_TIPO FROM LOCALIDADES WHERE PREFIXO = LEFT(PABX.NRTELEFONE,3)) WHERE LOCALIDADE IS NULL
UPDATE PABX SET LOCALIDADE = (SELECT CIDADE FROM LOCALIDADES WHERE PREFIXO = LEFT(PABX.NRTELEFONE,2)), CLASSIFICA = (SELECT COD_TIPO FROM LOCALIDADES WHERE PREFIXO = LEFT(PABX.NRTELEFONE,2)) WHERE LOCALIDADE IS NULL

Running a procedure in background !
vcp_learner
thanks !
Biber Technology
James Moore - Visionspring
-Tom Meschter
Software Dev, Visual C# IDE
Maria24
I would suggest using a custom threadpool instead. I have one available (for free, naturally) at
http://www.pobox.com/~skeet/csharp/miscutil
Of course, there are plenty of others around too.
Jon
tosco
using System.Threading;
class RunQueryArguments
{
public string cliente;
public string segundos;
}
public void atribui_valor(string cliente, string segundos)
{
RunQueryArguments arg = new RunQueryArguments();
arg.cliente = cliente;
arg.segundos = segundos;
ThreadPool.QueueUserWorkItem(new WaitCallback(RunQuery), arg);
}
private void RunQuery(object state)
{
RunQueryArguments arg = (RunQueryArguments) state;
string sql="ADDLOCALIDADE";
SqlCommand cmd=new SqlCommand(sql, conn);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}