En respuesta a Rolando que me solicita un ejemplo de codigo con Sheridan Data Widgets, os ruego me permitais la libertad de enviar este ejemplo de proyecto con VB 6 (solo son 7 Kb). Tal vez le pueda interesar a alguien mas.
El ejemplo es de un mantenimiento de una tabla en SQL Server realizando la edicion directamente en un grid de Sheridan sin Remote Data Control.
Ademas, para quien me ha preguntado sobre como se trabaja con el Grid, os envio ejemplo de carga y descarga de un grid Unbound.
El ejemplo corresponde al modulo de modificacion de los contadores de numero de factura de un programa de facturacion multiempresa.
El SSDBGrid tiene 3 columnas (IdEmpresa, DesEmpresa y UltimoNumero)
'La funcion OpenRDOResultset la podeis encontrar dentro del BAS que hay en el ZIP
Sub CargarGrid()
Dim cSQL As String
Dim nMousePointer As Integer
Dim rst As rdoResultset
Dim cDatos As String
nMousePointer = Screen.MousePointer
Screen.MousePointer = vbHourglass
dbgContadores.RemoveAll
cSQL = "SELECT "
cSQL = cSQL & "Contadores.IdEmpresa, "
cSQL = cSQL & "Empresas.Des AS DesEmpresa, "
cSQL = cSQL & "Contadores.UltimoNumero "
cSQL = cSQL & "FROM "
cSQL = cSQL & "Contadores, "
cSQL = cSQL & "Empresas "
cSQL = cSQL & "WHERE "
cSQL = cSQL & "Contadores.IdEmpresa = Empresas.Id "
cSQL = cSQL & "ORDER BY Contadores.IdEmpresa ASC"
If OpenRDOResultSet(rst, cSQL, RDO_READONLY) Then
While Not rst.EOF
cDatos = ""
cDatos = cDatos & rst("IdEmpresa").Value
cDatos = cDatos & Chr(9) & rst("DesEmpresa").Value
cDatos = cDatos & Chr(9) & rst("UltimoNumero").Value
dbgContadores.AddItem cDatos
rst.MoveNext
Wend
rst.Close
End If
Screen.MousePointer = nMousePointer
End Sub
Sub GrabarGrid()
Dim oBookmark As Variant
Dim i As Integer
Dim rdc As rdoConnection
Dim cSQL As String
Set rdc = rdoEnvironments(0).rdoConnections(0)
rdc.BeginTrans
On Error GoTo errGrabar
dbgContadores.Update
For i = 0 To dbgContadores.Rows - 1
oBookmark = dbgContadores.AddItemBookmark(i)
cSQL = "UPDATE Contadores SET "
cSQL = cSQL & "UltimoNumero = " & dbgContadores.Columns("UltimoNumero").CellValue(oBookmark)
cSQL = cSQL & " WHERE "
cSQL = cSQL & "IdEmpresa = '" &
dbgContadores.Columns("IdEmpresa").CellValue(oBookmark) & "'"
rdc.Execute cSQL
Next i
On Error GoTo 0
rdc.CommitTrans
Set rdc = Nothing
Exit Sub
errGrabar:
rdc.RollbackTrans
MsgBox "Error en grabacion"
End Sub
----------------------------------------------------------
Salu2.
----------------------------------------------------------
Jose Luis Perez Rodriguez
General Servei, s.a. (Dpto. Informatica)
C/La Tecnica, s/n Poligono Noroeste
08740 Sant Andreu de la Barca (BARCELONA - Spain -)
Tel. 93 653 05 08 (Ext. 230) Fax. 93 682 07 05
Movil. 616 03 39 39
e-mail: JoseLPR@BigFoot.com
-----Mensaje original-----
De: Rolando Velazquez de Rosas [SMTP:Rvelazqu@televisa.com.mx]
Enviado el: jueves, 03 de junio de 1999 18:06
Para: Jose Luis Perez
Asunto: Podrias enviarme un proyecto de ejemplo....
Gracias de antemano por contestar mi pregunta.
Ahora,. Abusando de tu confianza. Quiero pedirte un proyecto de ejemplo, donde yo pueda aprender a utilizar los controles de Sheridan Data Wingets 3.1 , sin necesidad de enlazarlos a un Control Data y donde pueda ver como busco, agrego, borro, o cambio un registro en las regillas de los grids y como se realiza la afectacion a la tabla de la base de datos.
Soy nuevo en el uso del RDO, pero debo de utilizarlo para un proyecto el cual se me a asignado desarrollar usando como base de datos SQL Server 6.5 con VB 5.0 empresarial.
Te doy las gracias por leer mis preguntas y por su puesto por contestar mis mensajes....
*****************************************
Rolando Velazquez De Rosas
Televisa, S.A. de C.V.
Tel.: 57 28 39 99 Ext.: 3258
E-mail: rvelazquez70@hotmail.com rvelazquez70@hotmail.com>
E-mail: rvelazqu@televisa.com.mx rvelazqu@televisa.com.mx>
*****************************************