ABM en un tabla sql server 2000 con vb
Tengo el siguiente problema al hacer mi ABM de una tabla clientes, estoy intentando programar en 3 capas (usuario, reglas de negocio, datos). Este código lo tenia funcionando con DAO y una base de access. Ahora lo he intentado pasar a ADO con SQL Server y lee la base de datos pero no Actualiza ni da de Alta
Public Sub GuardarDatos()
If rs.BOF And rs.EOF Then
rs.AddNew
Else
' rs.edit '*****aqui no se que método usar para editar
End If
rs!NroCliente = ClienteEnUso.NroCliente
rs!Nombre = ClienteEnUso.Nombre
rs.Update
End Sub
Anteriormente he declarado estas variables en este modulo de clase, lee la tabla captura los datos en los textbox del formulario de la interfaz de usuario) pero cuando quiero actualizar no lo hace.
Private ClienteEnUso As TipoCliente
Private flgEsNuevo As Boolean
Private DB As New Connection
Private rs As New Recordset
Public Sub GuardarDatos()
If rs.BOF And rs.EOF Then
rs.AddNew
Else
' rs.edit '*****aqui no se que método usar para editar
End If
rs!NroCliente = ClienteEnUso.NroCliente
rs!Nombre = ClienteEnUso.Nombre
rs.Update
End Sub
Anteriormente he declarado estas variables en este modulo de clase, lee la tabla captura los datos en los textbox del formulario de la interfaz de usuario) pero cuando quiero actualizar no lo hace.
Private ClienteEnUso As TipoCliente
Private flgEsNuevo As Boolean
Private DB As New Connection
Private rs As New Recordset
4 respuestas
Respuesta de brownsea
1
0
brownsea
, Consultor BI DBA SQL Analista Senior
La verdad hace mucho que no veo programación, pero recuerdo algo que tal vez te pueda servir, en Else que tienes prueba poniendo rs. Update, que si no me equivoco es el código para actualizar, pero lo que te recomendaría en todo caso es que lo manejes esto con un Store Procedure y no directamente desde el aplicativo, ya que cualquier cambio involucraría modificación en tu código, lo que deberías hacer es manejar todo en variables y luego ejecutar un SP pasando parámetros con tus cambios tanto para nuevos registros así como para actualizaciones.
Espero te sirva de algo lo que te envío, cualquier cosa adicional sobre SQL me puedes consultar.
Espero te sirva de algo lo que te envío, cualquier cosa adicional sobre SQL me puedes consultar.
- Compartir respuesta
Respuesta de emperador20
1
0
¿Te da algún error cuando el código pasa por el if?
Esto no me suena muy bien if rs.bof and rs. Eof then
pero hacete un paso a paso haber como actúa cuando entra a ese if
saludos
leandro
Esto no me suena muy bien if rs.bof and rs. Eof then
pero hacete un paso a paso haber como actúa cuando entra a ese if
saludos
leandro
No, solo me da error, cuando pasa por el rs.edit, ya que este método lo utilizaba con DAO.
Cuando lo comento, hace bien la lógica si es un registro nuevo o no, solo es me graba los cambios en la base de datos
Cuando lo comento, hace bien la lógica si es un registro nuevo o no, solo es me graba los cambios en la base de datos
El rs.edit quedo del código cuando usaba el programa en dao y se usa para editar el recordset. En ado no existe ese método
Gracias por contestar
Gracias por contestar
Sacalo, pense que seguias en ado y dao me confundio.
Y pone así, ¿por qué BOF y EOF al mismo tiempo?
Sácalo y pone así
if rs.eof then
rs.addnew
rs!NroCliente = ClienteEnUso.NroCliente
rs!Nombre = ClienteEnUso.Nombre
rs.Update
end if
Rs. Close
Y pone así, ¿por qué BOF y EOF al mismo tiempo?
Sácalo y pone así
if rs.eof then
rs.addnew
rs!NroCliente = ClienteEnUso.NroCliente
rs!Nombre = ClienteEnUso.Nombre
rs.Update
end if
Rs. Close
No, tampoco me actualiza la tabla no se porque sera...
¿Tu no tendrías un ejemplo simple de un ABM en ADO con SQL Server?
Gracias por las molestias
Saludos
Javier
¿Tu no tendrías un ejemplo simple de un ABM en ADO con SQL Server?
Gracias por las molestias
Saludos
Javier
El código anterior sirve para el alta,
el de modificar es lo mismo pero sacandoles el rs. Addnew
y el de baja es la consulta delete.
Probalo sacandole rs. Addnew
el de modificar es lo mismo pero sacandoles el rs. Addnew
y el de baja es la consulta delete.
Probalo sacandole rs. Addnew
Hola, tampoco lo modifica sacándole el addnew, ni agregaba un registro con el addnew, si quieres podría enviarte el proyecto y la base sql.
Lo que me parece raro es que pueda leer los datos, pero no grabarlos.
Saludos
Lo que me parece raro es que pueda leer los datos, pero no grabarlos.
Saludos
Empecemos por el principio.
Podes leer los datos perfecto, eso significa que la conexión esta hecha.
Ahora por cada botón seteas devuelta el recordset o es un recordset global ¿?
Para dar de alta un registro es así
Ejemplo
Set Rs = clase_datos.Abre("SELECT * FROM tabla")
rs.addnew
campo=ClienteEnUso.NroCliente (que es clienteenuso ¿una clase? llega el dato o es una cadena vacia)
rs.update
para modificar
Set Rs = clase_datos.Abre("SELECT * FROM tabla")
campo = clienteenuso.nrocliente
rs.update
para baja
la consulta con el delete
Set Rs = clase_datos.Abre("DELETE * FROM TABLA")
Nada más, ahora si esto no funciona, tienes que empezar a revisar como el recordset es seteado y donde. O usas paso a paso.
Si quieres mandame el pedazo de código donde das el alta, y las referencias de clase o seteo de recordset
Podes leer los datos perfecto, eso significa que la conexión esta hecha.
Ahora por cada botón seteas devuelta el recordset o es un recordset global ¿?
Para dar de alta un registro es así
Ejemplo
Set Rs = clase_datos.Abre("SELECT * FROM tabla")
rs.addnew
campo=ClienteEnUso.NroCliente (que es clienteenuso ¿una clase? llega el dato o es una cadena vacia)
rs.update
para modificar
Set Rs = clase_datos.Abre("SELECT * FROM tabla")
campo = clienteenuso.nrocliente
rs.update
para baja
la consulta con el delete
Set Rs = clase_datos.Abre("DELETE * FROM TABLA")
Nada más, ahora si esto no funciona, tienes que empezar a revisar como el recordset es seteado y donde. O usas paso a paso.
Si quieres mandame el pedazo de código donde das el alta, y las referencias de clase o seteo de recordset
No, es imposible que me ponga a ver código.
¿Estas programando en 3 capas en VB 6?, pasate a net que es orientado para hacer eso en vb6 las capas no existen, las tienes que armar vos.
En vb6, olvidemosnos de las capas, vamos a lo sencillo.
Para ver los datos, me podes pasar solo ese pedazo de código.
Porque si eso te funciona, lo demás tiene que andar.
¿Estas programando en 3 capas en VB 6?, pasate a net que es orientado para hacer eso en vb6 las capas no existen, las tienes que armar vos.
En vb6, olvidemosnos de las capas, vamos a lo sencillo.
Para ver los datos, me podes pasar solo ese pedazo de código.
Porque si eso te funciona, lo demás tiene que andar.
Option Explicit
'Declaracion de la estructura de datos
'a usar dentro de la clase
Private Type TipoCliente
NroCliente As String * 10
Nombre As String * 50
Domicilio As String * 50
Obra As String * 50
Localidad As String * 30
Provincia As String * 20
CodPost As String * 8
Pais As String * 20
Telefono As String * 20
Fax As String * 20
Celular As String * 15
Contacto As String * 50
Tel_Contacto As String * 20
FecAlta As Date
FecUltModif As Date
CondPago As String * 10
CUIT As String * 13
End Type
'Variables privadas de la clase
Private ClienteEnUso As TipoCliente
Private flgEsNuevo As Boolean
Private DB As New Connection
Private rs As New Recordset
Public Sub InicializarDatos()
DB.Open "Provider=SQLOLEDB.1;" & _
"Integrated Security=SSPI;" & _
"Persist Security info=false;" & _
"Initial Catalog=HOCH;Data Source=(local);" & _
"Use Procedure for prepare=1; Auto Translate=true;" & _
"packet size=4096;Workstation ID=(local);Use Encryption for Data=false;" & _
"Tag with column collation when possible=false"
DB.BeginTrans
End Sub
Public Sub CargarDatos()
Dim strSQL As String
Dim javier As Variant
strSQL = "SELECT * FROM Clientes " & _
"WHERE (NroCliente=" & _
NroCliente & ")"
rs.Open strSQL, _
DB, adOpenKeyset, adLockOptimistic, adCmdText
If Not (rs.BOF And rs.EOF) Then
ClienteEnUso.NroCliente = rs!NroCliente '**
ClienteEnUso.Nombre = rs!Nombre
ClienteEnUso.Domicilio = rs!Domicilio
ClienteEnUso.Obra = rs!Obra '***
ClienteEnUso.Localidad = rs!Localidad
ClienteEnUso.Provincia = rs!Provincia ' ****
ClienteEnUso.CodPost = rs!CodPostal
ClienteEnUso.Pais = rs!Pais '***
ClienteEnUso.Telefono = rs!Telefono
ClienteEnUso.Fax = rs!Fax '***
ClienteEnUso.Celular = rs!Celular '***
ClienteEnUso.Contacto = rs!Contacto '****
ClienteEnUso.Tel_Contacto = rs!Tel_Contacto '****
ClienteEnUso.FecAlta = rs!FecAlta
ClienteEnUso.FecUltModif = rs!FecUltModif
ClienteEnUso.CondPago = rs!CondPago '****
ClienteEnUso.CUIT = rs!CUIT '****
flgEsNuevo = False
Else
flgEsNuevo = True
End If
End Sub
Public Sub GuardarDatos()
If rs.BOF And rs.EOF Then
rs.AddNew
Else
rs!NroCliente = ClienteEnUso.NroCliente
rs!Nombre = ClienteEnUso.Nombre
rs!Domicilio = ClienteEnUso.Domicilio
rs!Obra = ClienteEnUso.Obra
rs!Localidad = ClienteEnUso.Localidad
rs!CodPostal = ClienteEnUso.CodPost
rs!Pais = ClienteEnUso.Pais
rs!Telefono = ClienteEnUso.Telefono
rs!Fax = ClienteEnUso.Fax
rs!Celular = ClienteEnUso.Celular
rs!Contacto = ClienteEnUso.Contacto
rs!FecAlta = ClienteEnUso.FecAlta
rs!FecUltModif = ClienteEnUso.FecUltModif
rs!CondPago = ClienteEnUso.CondPago
rs!CUIT = ClienteEnUso.CUIT
rs.Update
End If
End Sub
Public Sub Cerrar()
rs.Close
End Sub
Public Sub Eliminar()
rs.Delete
End Sub
Public Property Get EsNuevo() As Boolean
EsNuevo = flgEsNuevo
End Property
Public Property Get NroCliente() As Variant
NroCliente = ClienteEnUso.NroCliente
End Property
Public Property Let NroCliente(Valor As Variant)
ClienteEnUso.NroCliente = Valor
End Property
'*****
Public Property Get Nombre() As Variant
Nombre = Trim(ClienteEnUso.Nombre)
End Property
Public Property Let Nombre(Valor As Variant)
ClienteEnUso.Nombre = Valor
End Property
Public Property Get Domicilio() As Variant
Domicilio = Trim(ClienteEnUso.Domicilio)
End Property
Public Property Let Domicilio(Valor As Variant)
ClienteEnUso.Domicilio = Valor
End Property
Public Property Get Obra() As Variant
Obra = Trim(ClienteEnUso.Obra)
End Property
Public Property Let Obra(Valor As Variant)
ClienteEnUso.Obra = Valor
End Property
Public Property Get Localidad() As Variant
Localidad = Trim(ClienteEnUso.Localidad)
End Property
Public Property Let Localidad(Valor As Variant)
ClienteEnUso.Localidad = Valor
End Property
Public Property Get Provincia() As Variant
Provincia = Trim(ClienteEnUso.Provincia)
End Property
Public Property Let Provincia(Valor As Variant)
ClienteEnUso.Provincia = Valor
End Property
Public Property Get CodPost() As Variant
CodPost = Trim(ClienteEnUso.CodPost)
End Property
Public Property Let CodPost(Valor As Variant)
ClienteEnUso.CodPost = Valor
End Property
Public Property Get Pais() As Variant
Pais = Trim(ClienteEnUso.Pais)
End Property
Public Property Let Pais(Valor As Variant)
ClienteEnUso.Pais = Valor
End Property
Public Property Get Telefono() As Variant
Telefono = Trim(ClienteEnUso.Telefono)
End Property
Public Property Let Telefono(Valor As Variant)
ClienteEnUso.Telefono = Valor
End Property
Public Property Get Fax() As Variant
Fax = Trim(ClienteEnUso.Fax)
End Property
Public Property Let Fax(Valor As Variant)
ClienteEnUso.Fax = Valor
End Property
Public Property Get Celular() As Variant
Celular = Trim(ClienteEnUso.Celular)
End Property
Public Property Let Celular(Valor As Variant)
ClienteEnUso.Celular = Valor
End Property
Public Property Get Contacto() As Variant
Contacto = Trim(ClienteEnUso.Contacto)
End Property
Public Property Let Contacto(Valor As Variant)
ClienteEnUso.Contacto = Valor
End Property
Public Property Get Tel_Contacto() As Variant
Tel_Contacto = Trim(ClienteEnUso.Tel_Contacto)
End Property
Public Property Let Tel_Contacto(Valor As Variant)
ClienteEnUso.Tel_Contacto = Valor
End Property
Public Property Get FecAlta() As Variant
FecAlta = ClienteEnUso.FecAlta
End Property
Public Property Let FecAlta(Valor As Variant)
If IsDate(Valor) Then
ClienteEnUso.FecAlta = Valor
End If
End Property
Public Property Get FecUltModif() As Variant
FecUltModif = ClienteEnUso.FecUltModif
End Property
Public Property Let FecUltModif(Valor As Variant)
If IsDate(Valor) Then
ClienteEnUso.FecUltModif = Valor
End If
End Property
Public Property Get CondPago() As Variant
CondPago = Trim(ClienteEnUso.CondPago)
End Property
Public Property Let CondPago(Valor As Variant)
ClienteEnUso.CondPago = Valor
End Property
Public Property Get CUIT() As Variant
CUIT = Trim(ClienteEnUso.CUIT)
End Property
Public Property Let CUIT(Valor As Variant)
ClienteEnUso.CUIT = Valor
End Property
'Declaracion de la estructura de datos
'a usar dentro de la clase
Private Type TipoCliente
NroCliente As String * 10
Nombre As String * 50
Domicilio As String * 50
Obra As String * 50
Localidad As String * 30
Provincia As String * 20
CodPost As String * 8
Pais As String * 20
Telefono As String * 20
Fax As String * 20
Celular As String * 15
Contacto As String * 50
Tel_Contacto As String * 20
FecAlta As Date
FecUltModif As Date
CondPago As String * 10
CUIT As String * 13
End Type
'Variables privadas de la clase
Private ClienteEnUso As TipoCliente
Private flgEsNuevo As Boolean
Private DB As New Connection
Private rs As New Recordset
Public Sub InicializarDatos()
DB.Open "Provider=SQLOLEDB.1;" & _
"Integrated Security=SSPI;" & _
"Persist Security info=false;" & _
"Initial Catalog=HOCH;Data Source=(local);" & _
"Use Procedure for prepare=1; Auto Translate=true;" & _
"packet size=4096;Workstation ID=(local);Use Encryption for Data=false;" & _
"Tag with column collation when possible=false"
DB.BeginTrans
End Sub
Public Sub CargarDatos()
Dim strSQL As String
Dim javier As Variant
strSQL = "SELECT * FROM Clientes " & _
"WHERE (NroCliente=" & _
NroCliente & ")"
rs.Open strSQL, _
DB, adOpenKeyset, adLockOptimistic, adCmdText
If Not (rs.BOF And rs.EOF) Then
ClienteEnUso.NroCliente = rs!NroCliente '**
ClienteEnUso.Nombre = rs!Nombre
ClienteEnUso.Domicilio = rs!Domicilio
ClienteEnUso.Obra = rs!Obra '***
ClienteEnUso.Localidad = rs!Localidad
ClienteEnUso.Provincia = rs!Provincia ' ****
ClienteEnUso.CodPost = rs!CodPostal
ClienteEnUso.Pais = rs!Pais '***
ClienteEnUso.Telefono = rs!Telefono
ClienteEnUso.Fax = rs!Fax '***
ClienteEnUso.Celular = rs!Celular '***
ClienteEnUso.Contacto = rs!Contacto '****
ClienteEnUso.Tel_Contacto = rs!Tel_Contacto '****
ClienteEnUso.FecAlta = rs!FecAlta
ClienteEnUso.FecUltModif = rs!FecUltModif
ClienteEnUso.CondPago = rs!CondPago '****
ClienteEnUso.CUIT = rs!CUIT '****
flgEsNuevo = False
Else
flgEsNuevo = True
End If
End Sub
Public Sub GuardarDatos()
If rs.BOF And rs.EOF Then
rs.AddNew
Else
rs!NroCliente = ClienteEnUso.NroCliente
rs!Nombre = ClienteEnUso.Nombre
rs!Domicilio = ClienteEnUso.Domicilio
rs!Obra = ClienteEnUso.Obra
rs!Localidad = ClienteEnUso.Localidad
rs!CodPostal = ClienteEnUso.CodPost
rs!Pais = ClienteEnUso.Pais
rs!Telefono = ClienteEnUso.Telefono
rs!Fax = ClienteEnUso.Fax
rs!Celular = ClienteEnUso.Celular
rs!Contacto = ClienteEnUso.Contacto
rs!FecAlta = ClienteEnUso.FecAlta
rs!FecUltModif = ClienteEnUso.FecUltModif
rs!CondPago = ClienteEnUso.CondPago
rs!CUIT = ClienteEnUso.CUIT
rs.Update
End If
End Sub
Public Sub Cerrar()
rs.Close
End Sub
Public Sub Eliminar()
rs.Delete
End Sub
Public Property Get EsNuevo() As Boolean
EsNuevo = flgEsNuevo
End Property
Public Property Get NroCliente() As Variant
NroCliente = ClienteEnUso.NroCliente
End Property
Public Property Let NroCliente(Valor As Variant)
ClienteEnUso.NroCliente = Valor
End Property
'*****
Public Property Get Nombre() As Variant
Nombre = Trim(ClienteEnUso.Nombre)
End Property
Public Property Let Nombre(Valor As Variant)
ClienteEnUso.Nombre = Valor
End Property
Public Property Get Domicilio() As Variant
Domicilio = Trim(ClienteEnUso.Domicilio)
End Property
Public Property Let Domicilio(Valor As Variant)
ClienteEnUso.Domicilio = Valor
End Property
Public Property Get Obra() As Variant
Obra = Trim(ClienteEnUso.Obra)
End Property
Public Property Let Obra(Valor As Variant)
ClienteEnUso.Obra = Valor
End Property
Public Property Get Localidad() As Variant
Localidad = Trim(ClienteEnUso.Localidad)
End Property
Public Property Let Localidad(Valor As Variant)
ClienteEnUso.Localidad = Valor
End Property
Public Property Get Provincia() As Variant
Provincia = Trim(ClienteEnUso.Provincia)
End Property
Public Property Let Provincia(Valor As Variant)
ClienteEnUso.Provincia = Valor
End Property
Public Property Get CodPost() As Variant
CodPost = Trim(ClienteEnUso.CodPost)
End Property
Public Property Let CodPost(Valor As Variant)
ClienteEnUso.CodPost = Valor
End Property
Public Property Get Pais() As Variant
Pais = Trim(ClienteEnUso.Pais)
End Property
Public Property Let Pais(Valor As Variant)
ClienteEnUso.Pais = Valor
End Property
Public Property Get Telefono() As Variant
Telefono = Trim(ClienteEnUso.Telefono)
End Property
Public Property Let Telefono(Valor As Variant)
ClienteEnUso.Telefono = Valor
End Property
Public Property Get Fax() As Variant
Fax = Trim(ClienteEnUso.Fax)
End Property
Public Property Let Fax(Valor As Variant)
ClienteEnUso.Fax = Valor
End Property
Public Property Get Celular() As Variant
Celular = Trim(ClienteEnUso.Celular)
End Property
Public Property Let Celular(Valor As Variant)
ClienteEnUso.Celular = Valor
End Property
Public Property Get Contacto() As Variant
Contacto = Trim(ClienteEnUso.Contacto)
End Property
Public Property Let Contacto(Valor As Variant)
ClienteEnUso.Contacto = Valor
End Property
Public Property Get Tel_Contacto() As Variant
Tel_Contacto = Trim(ClienteEnUso.Tel_Contacto)
End Property
Public Property Let Tel_Contacto(Valor As Variant)
ClienteEnUso.Tel_Contacto = Valor
End Property
Public Property Get FecAlta() As Variant
FecAlta = ClienteEnUso.FecAlta
End Property
Public Property Let FecAlta(Valor As Variant)
If IsDate(Valor) Then
ClienteEnUso.FecAlta = Valor
End If
End Property
Public Property Get FecUltModif() As Variant
FecUltModif = ClienteEnUso.FecUltModif
End Property
Public Property Let FecUltModif(Valor As Variant)
If IsDate(Valor) Then
ClienteEnUso.FecUltModif = Valor
End If
End Property
Public Property Get CondPago() As Variant
CondPago = Trim(ClienteEnUso.CondPago)
End Property
Public Property Let CondPago(Valor As Variant)
ClienteEnUso.CondPago = Valor
End Property
Public Property Get CUIT() As Variant
CUIT = Trim(ClienteEnUso.CUIT)
End Property
Public Property Let CUIT(Valor As Variant)
ClienteEnUso.CUIT = Valor
End Property
Cuando cargas los datos haces
strSQL = "SELECT * FROM Clientes " & _
"WHERE (NroCliente=" & _
NroCliente & ")"
rs.Open strSQL, _
DB, adOpenKeyset, adLockOptimistic, adCmdText
If Not (rs.BOF And rs.EOF) Then
Pero cuando das de alta no lo haces, quedaría así
Public Sub GuardarDatos()
strSQL = "SELECT * FROM Clientes "
rs.Open strSQL, _
DB, adOpenKeyset, adLockOptimistic, adCmdText
rs.AddNew
rs!NroCliente = ClienteEnUso.NroCliente
rs!Nombre = ClienteEnUso.Nombre
rs!Domicilio = ClienteEnUso.Domicilio
rs!Obra = ClienteEnUso.Obra
rs!Localidad = ClienteEnUso.Localidad
rs!CodPostal = ClienteEnUso.CodPost
rs!Pais = ClienteEnUso.Pais
rs!Telefono = ClienteEnUso.Telefono
rs!Fax = ClienteEnUso.Fax
rs!Celular = ClienteEnUso.Celular
rs!Contacto = ClienteEnUso.Contacto
rs!FecAlta = ClienteEnUso.FecAlta
rs!FecUltModif = ClienteEnUso.FecUltModif
rs!CondPago = ClienteEnUso.CondPago
rs!CUIT = ClienteEnUso.CUIT
rs.Update
End If
End Sub
Esperemos que funcione.
strSQL = "SELECT * FROM Clientes " & _
"WHERE (NroCliente=" & _
NroCliente & ")"
rs.Open strSQL, _
DB, adOpenKeyset, adLockOptimistic, adCmdText
If Not (rs.BOF And rs.EOF) Then
Pero cuando das de alta no lo haces, quedaría así
Public Sub GuardarDatos()
strSQL = "SELECT * FROM Clientes "
rs.Open strSQL, _
DB, adOpenKeyset, adLockOptimistic, adCmdText
rs.AddNew
rs!NroCliente = ClienteEnUso.NroCliente
rs!Nombre = ClienteEnUso.Nombre
rs!Domicilio = ClienteEnUso.Domicilio
rs!Obra = ClienteEnUso.Obra
rs!Localidad = ClienteEnUso.Localidad
rs!CodPostal = ClienteEnUso.CodPost
rs!Pais = ClienteEnUso.Pais
rs!Telefono = ClienteEnUso.Telefono
rs!Fax = ClienteEnUso.Fax
rs!Celular = ClienteEnUso.Celular
rs!Contacto = ClienteEnUso.Contacto
rs!FecAlta = ClienteEnUso.FecAlta
rs!FecUltModif = ClienteEnUso.FecUltModif
rs!CondPago = ClienteEnUso.CondPago
rs!CUIT = ClienteEnUso.CUIT
rs.Update
End If
End Sub
Esperemos que funcione.
- Compartir respuesta
Respuesta de Roberto Alvarado
1
0
Roberto Alvarado
, Desarrollador de aplicaciones en plataforma
Holaç
Para editar simplemente haces el .Update, sin necesidad e hacer un addnew en el recordset.
Tienes que tener en cuenta los parámetros del tipo de cursor en ADO, porque algunos no permiten grabar datos y por eso no graba los datos en la base de datos.
Para editar simplemente haces el .Update, sin necesidad e hacer un addnew en el recordset.
Tienes que tener en cuenta los parámetros del tipo de cursor en ADO, porque algunos no permiten grabar datos y por eso no graba los datos en la base de datos.
- Compartir respuesta
Respuesta de arkide
1
0
arkide
, Programacion VB6, SQL, PHP
Antes que nada quiero que te quede claro que cada desarrollador tiene su estilo, al ir programando te vas haciendo de "artimañas" al programar, entendido esto te voy a dar algunos consejos que a mi me sirven de maravilla.
1. ADO es lo mejor si lo manejas correctamente, pues solo cambias la cadena de conexión y trabaja con todas las versiones de SQL Server, MySQL, Oracle, etc, etc (obviamente necesitas el driver).
2. El uso del recordset como lo manejas en lo personal no lo recomiendo.
3. Consulta Recursividad y Polimorfismo...
4. Usa SQL, con SQL Server tienes más recursos a la mano
Referente a tu problema:
Porque no manejas Stored procedures para manejar tu información, te vas a ahorrar muchos quebrantos si empiezas a manejar "código parametrizable" o "código suave"
Ej. Rs.execute "EXEC spNewData 1,'juan morales', 3,4"
Ej. Db.execute "EXEC spNewData 1,'juan morales', 3,4"
Espero que haya sido de utilidad la respuesta que te doy
1. ADO es lo mejor si lo manejas correctamente, pues solo cambias la cadena de conexión y trabaja con todas las versiones de SQL Server, MySQL, Oracle, etc, etc (obviamente necesitas el driver).
2. El uso del recordset como lo manejas en lo personal no lo recomiendo.
3. Consulta Recursividad y Polimorfismo...
4. Usa SQL, con SQL Server tienes más recursos a la mano
Referente a tu problema:
Porque no manejas Stored procedures para manejar tu información, te vas a ahorrar muchos quebrantos si empiezas a manejar "código parametrizable" o "código suave"
Ej. Rs.execute "EXEC spNewData 1,'juan morales', 3,4"
Ej. Db.execute "EXEC spNewData 1,'juan morales', 3,4"
Espero que haya sido de utilidad la respuesta que te doy
- Compartir respuesta