Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Ayuda En un Update tiempo de espera ha terminado

Estas en el tema de Ayuda En un Update tiempo de espera ha terminado en el foro de Visual Basic clásico en Foros del Web. Buenos dias a todos, Tengo un problema y espero alguien pueda ayudarme o darme un consejo de como tratar el siguiente problema: Tengo una aplicacion ...
  #1 (permalink)  
Antiguo 11/12/2008, 09:56
 
Fecha de Ingreso: septiembre-2008
Mensajes: 11
Antigüedad: 15 años, 7 meses
Puntos: 0
Ayuda En un Update tiempo de espera ha terminado

Buenos dias a todos,
Tengo un problema y espero alguien pueda ayudarme o darme un consejo de como tratar el siguiente problema:
Tengo una aplicacion en vb que se conecta a un servidor sql, en un formulario cargo en un grid registros, manejo un control muy parecido a un grid que se llama vaspread y en el tiene la propiedad de poder asignarle a cada columna un tipo de dato(etiqueta,fecha,check box, entre otros), en fin, despues de que cargo mis datos mediante una consulta, la aplicacion tiene una opcion de modificar grupo esto quiere decir que dependiendo de las filas que esten seleccionadas, se abre otra forma donde yo puedo actualizar ciertos campos de las filas que seleccione, en pocas palabras hago un update por cada fila que seleccione. mi problema es el siguiente que me marca un error 0 : El tiempo de espera ha terminado. Les menciono que la aplicacion esta instalada en varias partes de mexico, es decir, Tenemos un servidor central en la Ciudad de Mexico, y la aplicacion esta regada en varios estados de mexico como manzanillo, veracruz, guadalajara, entre otros, y ese error se produce en estas partes, no se si el error tenga que ver con las distancias lejanas y el hecho de tener solo un servidor central. ya revise el codigo en visual basic en las propiedades de la conexion y en el timeout esta como =0 y ya estuve investigando esas propiedades de conexion y eso quiere decir que el tiempo de espera es indefinido, por parte del lado de sql server tambien se puede configurar el timeout y tambien tiene un tiempo=0 osea tiempo indefinido,
Por el lado del codigo en ese modulo donde hago el update primero hago un beging transaction, y despues mediante un ciclo recorro todas las filas del grid y de acuerdo a la que este seleccionada hago el update, una vez que se termine el ciclo, hago un commit o en dado caso de que hubiera un problema un rollback, ese es el segundo detalle a considerar ya que no se si este bien hacer eso, es decir si en el grid tengo seleccionadas 5 filas y hago el update de todas y al ultimo hago un commit por todos los updates, eso este trabando la tabla que actualizo, no se si deba hacer un begin,update,commit o rollback por cada fila
Bueno ese es mi problema, espero y pueda alguien orientarme
Les anexo el codigo donde hago la rutina del update
Gracias por la atencion y espero su ayuda

Public Function GuardaSeleccion() As Boolean
Dim LlCuenta As Long
Dim LbGuarda As Boolean
Dim sqlset As String
Dim Lasig As String
With FmConsCartaPorte.GrdCatalogo
LbGuarda = True
GcDb.dbBeginTran
For LiCuenta = 1 To .DataRowCnt
.Col = ct_Seleccion
.Row = LiCuenta
If .Text = 1 Or .Text = "TRUE" Then
sql = "Update mar_CartaPorte set "
If MsLoginAut = "" Then
sql = sql & "FECHAHORA_ENV = case when FECHAHORA_ENV is null then " & IIf(MsFechaEnvio = "", "Null", "convert(char(10), '" & MsFechaEnvio & "', 103) + ' ' + convert(char(5), '" & Format(MsFechaEnvio, "hh:mm:ss") & "', 108)") & " else FECHAHORA_ENV end, "
sql = sql & "FECHAHORA_REC = case when FECHAHORA_REC is null then " & IIf(MsFechaRecepcion = "", "Null", "convert(char(10), '" & MsFechaRecepcion & "', 103) + ' ' + convert(char(5), '" & Format(MsFechaRecepcion, "hh:mm:ss") & "', 108)") & " else FECHAHORA_REC end, "
sql = sql & "REFERENCIA = case when REFERENCIA is null then " & IIf(MsReferecia = "", "Null", "'" & MsReferecia & "'") & " else REFERENCIA end, "
sql = sql & "dTarifa = case when dTarifa is null or dTarifa = 0 then " & IIf(MdTarifa = 0, "Null", MdTarifa) & " else dTarifa end, "
sql = sql & "FACTDCOBRO = case when FACTDCOBRO is null then " & IIf(MsFacturaCobro = "", "Null", "'" & MsFacturaCobro & "'") & " else FACTDCOBRO end, "
'sql = sql & "IDMONEDA = case when IDMONEDA = 0 then " & IIf(MiMoneda = 0, 0, MiMoneda) & " else IDMONEDA end, "
If MiMoneda = 0 Then
sql = sql & "IDMONEDA=IDMONEDA,"
Else
sql = sql & "IDMONEDA= " & MiMoneda & ","
End If
'VSL
sql = sql & "dTipoCamb = case when dTipoCamb is null or dTipoCamb = 0 then " & IIf(MdTipoCambio = 0, "Null", MdTipoCambio) & " else dTipoCamb end, "
'<<< VSL 2/10/08 Se comenta esta parte porque no actualiza los datos
'<<<1 LPRP 03/07/2008 Req. 2008- Proceso Control Carta Porte V1.1
'sql = sql & "FechaEnvióAD = case when FechaEnvióAD is null then " & IIf(MsEnvioAD = "", "Null", "'" & Format(MsEnvioAD, "dd/mm/yyyy HH:mm:ss") & "'") & " else FechaEnvióAD end, "
'sql = sql & "FechaRecepcionAD = case when FechaRecepcionAD is null then " & IIf(MsRecepcionAD = "", "Null", "'" & Format(MsRecepcionAD, "dd/mm/yyyy HH:mm:ss") & "'") & " else FechaRecepcionAD end, "
'sql = sql & "FechaFactura = case when FechaFactura is null then " & IIf(MsFechaFactura = "", "Null", "'" & Format(MsFechaFactura, "dd/mm/yyyy HH:mm:ss") & "'") & " else FechaFactura end "
'<<<1 LPRL
If MsEnvioAD = "" Then
sql = sql & "FechaEnvióAD=FechaEnvióAD, "
Else
sql = sql & "FechaEnvióAD= '" & Format(MsEnvioAD, "dd/mm/yyyy HH:mm:ss") & "',"
End If
If MsRecepcionAD = "" Then
sql = sql & "FechaRecepcionAD=FechaRecepcionAD, "
Else
sql = sql & "FechaRecepcionAD= '" & Format(MsRecepcionAD, "dd/mm/yyyy HH:mm:ss") & "',"
End If
If MsFechaFactura = "" Then
sql = sql & "FechaFactura=FechaFactura, "
Else
sql = sql & "FechaFactura= '" & Format(MsFechaFactura, "dd/mm/yyyy HH:mm:ss") & "' "
End If
'<<< VSL
If MsEntregaPatio = "" Then
sql = sql & "FecEntregaPatio=FecEntregaPatio "
Else
sql = sql & "FecEntregaPatio= '" & Format(MsEntregaPatio, "dd/mm/yyyy HH:mm:ss") & "' "
End If

Else
sqlset = ""
If MsFechaEnvio <> "" Then sqlset = sqlset & "FECHAHORA_ENV = convert(char(10), '" & MsFechaEnvio & "', 103) + ' ' + convert(char(5), '" & Format(MsFechaEnvio, "hh:mm:ss") & "', 108), "
If MsFechaRecepcion <> "" Then sqlset = sqlset & "FECHAHORA_REC = convert(char(10), '" & MsFechaRecepcion & "', 103) + ' ' + convert(char(5), '" & Format(MsFechaRecepcion, "hh:mm:ss") & "', 108), "
If MsReferecia <> "" Then sqlset = sqlset & "REFERENCIA = '" & MsReferecia & "', "
If MdTarifa <> 0 Then sqlset = sqlset & "dTarifa = " & MdTarifa & ", "
If MsFacturaCobro <> "" Then sqlset = sqlset & "FACTDCOBRO = '" & MsFacturaCobro & "', "
If MiMoneda <> 0 Then sqlset = sqlset & "IDMONEDA = " & MiMoneda & ", "
If MdTipoCambio <> 0 Then sqlset = sqlset & "dTipoCamb = " & MdTipoCambio & ", "
If (MsEnvioAD <> "") Then sqlset = sqlset & " FechaEnvióAD = '" & Format(MsEnvioAD, "dd/mm/yyyy HH:mm:ss") & "', "
If (MsRecepcionAD <> "") Then sqlset = sqlset & "FechaRecepcionAD = '" & Format(MsRecepcionAD, "dd/mm/yyyy HH:mm:ss") & "', "
If (MsFechaFactura <> "") Then sqlset = sqlset & "FechaFactura = '" & Format(MsFechaFactura, "dd/mm/yyyy HH:mm:ss") & "', "

If (MsEntregaPatio <> "") Then sqlset = sqlset & "FecEntregaPatio = '" & Format(MsEntregaPatio, "dd/mm/yyyy HH:mm:ss") & "', "
'<<<VSL
If sqlset <> "" Then
sql = sql & sqlset & "LOGIN_AUTENV = '" & MsLoginAut & "' "
Else
sql = "select * from mar_CartaPorte "
End If
End If
'.Col = ct_CartaPorte
.Col = ct_IdCartaP
sql = sql & "WHere IdCartaPorte = " & .Value
If Not GcDb.dbExecQuery(sql, MrDatos) Then
LbGuarda = False
Exit For
End If
.Col = ct_Asignacion
If MsEntregaPatio <> "" And .Value <> "" Then
sql = "INSERT INTO mar_CPortexAsignacion ( IDAsignacion, IDCartaPorte, FecEntregaPatio,LOGIN_DB,LOGIN_AUT) VALUES ( "
sql = sql & .Value & ", "
.Col = ct_IdCartaP
sql = sql & .Value & ", '" & Format(MsEntregaPatio, "dd/mm/yyyy HH:mm:ss") & "', '" & MsFirma & "', '" & MsLoginAut & "')"
If Not GcDb.dbExecQuery(sql, MrDatos) Then
LbGuarda = False
Exit For
End If
End If

End If
Next LiCuenta
If LbGuarda Then
GcDb.dbCommit
GuardaSeleccion = True
Else
GcDb.dbRollback
GuardaSeleccion = False
End If
Set MrDatos = Nothing
End With
With FmConsCartaPorte
.txuCartaPorte.SetFocus
.txuObserva = ""
.txuObserva.Visible = False
.lbU2.Visible = False
End With
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:02.