• Lunes 29 de Abril de 2024, 01:20

Autor Tema:  Update & Sql Server 2000  (Leído 4186 veces)

juravi

  • Miembro activo
  • **
  • Mensajes: 94
    • Ver Perfil
    • http://spaces.msn.com/members/ingjuan
Update & Sql Server 2000
« en: Lunes 17 de Enero de 2005, 19:21 »
0
Hola a todos sere brebe. como hago para guardar numeros consecutivos en un update. Por ejemplo
 :devil:

Citar
num = 1024
Set RSMensuales = Nothing
                 RSMensuales.Open "UPDATE TMensual SET fac_mes = '" & Trim(num) & "'" & _
                  "WHERE per_mes = '" & per & "'", CnSQLconexion, adOpenKeyset, adLockOptimistic

si hay 3 registros afectados se guarde asi

1025
1026
y 1027

pero con un solo update y sin ciclo .... :blink:
El Fin justifica los Medios
 _______________________
ﻞυגανι.Corp [The Designer]
<a href=\'mailto]No sé el secreto para llegar al éxito, pero sé que tratar de agradar a todos es lo que te llevará al fracaso... Piénsalo!!![/color]

desarrollo

  • Miembro activo
  • **
  • Mensajes: 74
    • Ver Perfil
Re: Update & Sql Server 2000
« Respuesta #1 en: Lunes 17 de Enero de 2005, 20:35 »
0
hola juravi   :hola:


tal vez los ke buscas es la de lsgte manera:

Código: Text
  1. num = 1024
  2. Set RSMensuales = Nothing
  3. RSMensuales.Open &#34;UPDATE TMensual SET fac_mes = '&#34; & Trim(num+1) & &#34;'&#34; &  &#34;,&#34; & &#34; fac_mes = '&#34; & Trim(num+2) & &#34;'&#34; & &#34;,&#34; & &#34; fac_mes = '&#34; & Trim(num+3) & &#34;'&#34; & _
  4. &#34;WHERE per_mes = '&#34; & per & &#34;'&#34;, CnSQLconexion, adOpenKeyset, dLockOptimistic
  5.  
  6.  

si no es asi lo ke kieres entonces puedes amplair mas tu consulta....

nos vemos

desarrollo   :comp:

juravi

  • Miembro activo
  • **
  • Mensajes: 94
    • Ver Perfil
    • http://spaces.msn.com/members/ingjuan
Re: Update & Sql Server 2000
« Respuesta #2 en: Lunes 17 de Enero de 2005, 21:07 »
0
Hola desarrollo, mira dejame esplicarte mejor la cosa es asi.
Yo tengo una tabla que tiene unos registros que se actualizan mensualmente, y en la actualizacion se toma un numero base que de alli se comiensa a enumerar las facturas. por decir el numero base es 100. y en ese mes hay 5 facturas. el proceso lo que hace es ponerle el numero de factura(q inisialmente es nulo) de forma consecutiva.

El antes estaba con un while pero es que se usaba access de BD pero ahora se cambio a sql server y con una sola consulta se actualizan todos de una sola vez sin la necesidad de hacer el ciclo while y como solo se controla por el periodo,
mira antes estaba asi

Citar
num=100
 while not.eof
 if periodo = per then
    .edith
    .field("fac_mes") =  Trim(num)
    .update
    .movenext
    num= num + 1
 end if
wend

y si habian 5 sera asi. 100, 101,..105
Antes si se podia hacer pero ahora con sql es otra cosa ya que el busca todos los registros que cumplan con la misma condision y los actualiza de un vez.
asi

Citar
num = 100
Set RSMensuales = Nothing
RSMensuales.Open "UPDATE TMensual SET fac_mes = '" & Trim(num) & "'" & _
"WHERE per_mes = '" & per & "'", CnSQLconexion, adOpenKeyset, adLockOptimistic

Como hago para que ponga la enumeracion verdadera por que asi le pone el mismo valor a todos los registros que esten en el mismo periodo. Ya trate poniendole num + 1 y nada lo suma y se lo pone a todos los del periodo osea 5 101.
Saludos
El Fin justifica los Medios
 _______________________
ﻞυגανι.Corp [The Designer]
<a href=\'mailto]No sé el secreto para llegar al éxito, pero sé que tratar de agradar a todos es lo que te llevará al fracaso... Piénsalo!!![/color]

vbmc_2004

  • Miembro activo
  • **
  • Mensajes: 41
    • Ver Perfil
Re: Update & Sql Server 2000
« Respuesta #3 en: Martes 18 de Enero de 2005, 04:15 »
0
Hola Juravi...
mira no quiero parecer un experto en sql server con visual basic pero yo realice hace muy poco un sistema de compra y ventas de vehiculos y lo que tenia que hacer es que los embarques que llegaran a la automotora, venian con una guia de despacho y en el cual yo hacia el siguiente proceso

ejemplo:
ingrese cantidad vehiculos del embarque: 5 ?
se iniciaba la base de datos en 100 por ejemplo, he iba ingresaba los 5 vehiculos que trai el embarque, con sus datos respectivos n motor, chasis,puertas,color etc...hasta que completaba los 5 vehiculos , luego el sistema detectaba que yo o el usuario ingreso los Nº de vehiculos(5) que tenia la guia de despacho y me generaba en forma correlativa los registros de ingresos de vehiculos...

paso dos.
cuando llegaba otro embarque con 10 vehiculos los ingresaba de nuevo...
llamaba a la tabla correspondiente, la recorria hasta llegar al final del archivo tomando el ultimo numero de registro que en este caso (ejemplo seria el 104 y le sumaba +1 entiendes me imagino) y repetia el mismo proceso. pero siempre utilice un WHILE para recorrer la tabla y no una instruccion UPDATE si no que un INSER INTO .....

ojala te sirva a me funciono sin ningun problema..

haaa.
pd tambien tenia una factura que operaba casi similar

nos vemos espero que te sirva de algo debes igual realizar un ciclo he ir ingresando la factura una a una a la ves hasta llegar a completar la cantidad de facturas... cambiar la instruccion UPDATE por un insert haaa otra debes tener en cuenta que el numero de factura es una CLAVE PRINCIPAL ninguna factura debe tener el mismo numero por lo cual creo que no en esa tabla no tiene una clave principal por eso tambien te deja el mismo numero..

chau espero que te sirva

salu2 y que estes bien...
 atte

VBMC_2004
<!--c1--></div><table border=\'0\' align=\'center\' width=\'95%\' cellpadding=\'3\' cellspacing=\'1\'><tr><td>CODE </td></tr><tr><td id=\'CODE\'><!--ec1-->[vmbc®]<!--c2--></td></tr></table><div class=\'signature\'><!--ec2-->

juravi

  • Miembro activo
  • **
  • Mensajes: 94
    • Ver Perfil
    • http://spaces.msn.com/members/ingjuan
Re: Update & Sql Server 2000
« Respuesta #4 en: Martes 18 de Enero de 2005, 14:27 »
0
Hola vbmc_2004 y gracias.
Yo te entiendo, yo hice una rutina paresida, pero mi jefe dice que puede y no puede servir. ya que como se esta trabajando con facturas la enumeracion tiene que ser consecutiva. Mira por ejemplo. con la rutina que desarrolle el busca el ultimo registro(factura) de ese periodo y le suma una. hasta alli no hay problema. El problema esta en que si se elimina una factura por decir habian 15 y elimine la 8(1008) la 15 tiene por ejm(1015) al introducir otra factura el cuenta que hay es 14 + 1 seria 15 osea(1015) y ya seria error(duplisidad)( y el sistema maneja por mes un minimo de 300 facturas) yadema se imprime en unas hojas de facturas ya enumeradas y ese eso el otro problema. por eso es que quiero como autoenumerar en un Update.

Alguien tiene una solucion, se lo agardesco.

Saludos
El Fin justifica los Medios
 _______________________
ﻞυגανι.Corp [The Designer]
<a href=\'mailto]No sé el secreto para llegar al éxito, pero sé que tratar de agradar a todos es lo que te llevará al fracaso... Piénsalo!!![/color]

juravi

  • Miembro activo
  • **
  • Mensajes: 94
    • Ver Perfil
    • http://spaces.msn.com/members/ingjuan
Re: Update & Sql Server 2000
« Respuesta #5 en: Martes 18 de Enero de 2005, 14:28 »
0
:devil:
Hola vbmc_2004 y gracias.
Yo te entiendo, yo hice una rutina paresida, pero mi jefe dice que puede y no puede servir. ya que como se esta trabajando con facturas la enumeracion tiene que ser consecutiva. Mira por ejemplo. con la rutina que desarrolle el busca el ultimo registro(factura) de ese periodo y le suma una. hasta alli no hay problema. El problema esta en que si se elimina una factura por decir habian 15 y elimine la 8(1008) la 15 tiene por ejm(1015) al introducir otra factura el cuenta que hay es 14 + 1 seria 15 osea(1015) y ya seria error(duplisidad)( y el sistema maneja por mes un minimo de 300 facturas) yadema se imprime en unas hojas de facturas ya enumeradas y ese eso el otro problema. por eso es que quiero como autoenumerar en un Update.

 :comp:
Alguien tiene una solucion, se lo agardesco.

Saludos
El Fin justifica los Medios
 _______________________
ﻞυגανι.Corp [The Designer]
<a href=\'mailto]No sé el secreto para llegar al éxito, pero sé que tratar de agradar a todos es lo que te llevará al fracaso... Piénsalo!!![/color]

vbmc_2004

  • Miembro activo
  • **
  • Mensajes: 41
    • Ver Perfil
Re: Update & Sql Server 2000
« Respuesta #6 en: Martes 18 de Enero de 2005, 17:03 »
0
mmmm....
 
hola...
no entiendo porque quieres eliminar una factura? lo que deberias hacer es dejarla "nula" por que ami me ocurrio lo mismo cuando empeze hacer el sistema de vehiculos yo tenia una base de datos en sql server con enetidad referencial osea tienes que eliminar desde la referencia que se crea, hasta la tabla maestra y es algo muy engorroso asi cuando le comente a un amigo ing. civil en informatica me dijo que la dejara "nula" osea no se puede imprimir o hacer cualquier cosa con esa factura a menos que lo haga el administrador del sistema con los privilegios que corresponda... solo es un tema de validación??

nos vemos espero te ayude!!!


atte. VBMC_2004 :kicking:
<!--c1--></div><table border=\'0\' align=\'center\' width=\'95%\' cellpadding=\'3\' cellspacing=\'1\'><tr><td>CODE </td></tr><tr><td id=\'CODE\'><!--ec1-->[vmbc®]<!--c2--></td></tr></table><div class=\'signature\'><!--ec2-->

juravi

  • Miembro activo
  • **
  • Mensajes: 94
    • Ver Perfil
    • http://spaces.msn.com/members/ingjuan
Re: Update & Sql Server 2000
« Respuesta #7 en: Martes 18 de Enero de 2005, 20:16 »
0
:devil:
Hola, vbmc_2004.
Entiendo tu opinion. pero todo sistema amigable debe permitir hacer ese tipo de transacciones(crear, actualizar y eliminar si es necesario). y eso es necesario en este sistema, no es por mi, es por politica de la empresa, y solo no se puede eliminar si la susodicha ya fue impresa de lo contrario se puede eliminar.
 :comp:
Hay alguien que me pueda dar una solucion.
El Fin justifica los Medios
 _______________________
ﻞυגανι.Corp [The Designer]
<a href=\'mailto]No sé el secreto para llegar al éxito, pero sé que tratar de agradar a todos es lo que te llevará al fracaso... Piénsalo!!![/color]

desarrollo

  • Miembro activo
  • **
  • Mensajes: 74
    • Ver Perfil
Re: Update & Sql Server 2000
« Respuesta #8 en: Miércoles 19 de Enero de 2005, 03:08 »
0
hola juravi   :hola:

ya probaste coger el ultimo valor de tu relacion de numero por ejemplo

exiten 15 registros
1001
1002
1003 esta se elmino
.
.
.
1015

si haces un select count() es logico que te arroje 14 registros porque una ya se elimino, pero si tomas el ultimo que es en este caso 1015 y le sumas +1  (osea 1005+1=1016) mmm... para conseguir el ultimo registro seria hacer un recordset (move last) de la tabla que manejas, talvez te resultaria de esa manera  &lt;_&lt; , es solo una idea quizas te oriente..  :)

desarrollo   :comp:

juravi

  • Miembro activo
  • **
  • Mensajes: 94
    • Ver Perfil
    • http://spaces.msn.com/members/ingjuan
Re: Update & Sql Server 2000
« Respuesta #9 en: Miércoles 19 de Enero de 2005, 14:08 »
0
:devil:
Hola desarrollo, es buena idea, voy a consultar con mi jefe para ver si es factible, es que el es una amante de la perfeccion. Gracias de Todas manera.
 :comp:
Sigo aceptando sujerencias
El Fin justifica los Medios
 _______________________
ﻞυגανι.Corp [The Designer]
<a href=\'mailto]No sé el secreto para llegar al éxito, pero sé que tratar de agradar a todos es lo que te llevará al fracaso... Piénsalo!!![/color]

Brroz

  • Miembro de PLATA
  • *****
  • Mensajes: 1058
    • Ver Perfil
Re: Update & Sql Server 2000
« Respuesta #10 en: Miércoles 19 de Enero de 2005, 14:36 »
0
Hola.

Puedes recuperar el nuevo número con una función de este estilo:

Código: Text
  1.  
  2. Public Funcion NuevaClave(ByRef ConexionValida As ADODB.Connection, Byval Año as Integer) As Long
  3.  
  4.   Dim rs1 As ADODB.Recordset
  5.   Set rs1 = ADODB.Recordset
  6.   rs1.Open &#34;SELECT MAX(CampoClave) FROM TablaEnCuestion &#34; _
  7.   &#34; WHERE CampoAño=&#34; & Año, ConexionValida
  8.   NuevaClave = IIf(Not IsNull(rs1.Fields(0).Value), rs1.Fields(0).Value + 1, 1)
  9.   Set rs1 = Nothing
  10.  
  11. End Function
  12.  
  13.  

Chau.

juravi

  • Miembro activo
  • **
  • Mensajes: 94
    • Ver Perfil
    • http://spaces.msn.com/members/ingjuan
Re: Update & Sql Server 2000
« Respuesta #11 en: Miércoles 19 de Enero de 2005, 16:26 »
0
:devil:
Gracias Brroz, la rutina no me sirvio por el momento para  lo que me aqueja (necesito que venga de vacasiones la usuaria del modulo ese para hacer una pregunta), pero si para algo que lo tenia en espera.
 :comp:
Son bienvenidas las sugerencias.
El Fin justifica los Medios
 _______________________
ﻞυגανι.Corp [The Designer]
<a href=\'mailto]No sé el secreto para llegar al éxito, pero sé que tratar de agradar a todos es lo que te llevará al fracaso... Piénsalo!!![/color]