El Control Dataview


Ir a la página 1, 2  Siguiente

Objetivo: El Control Dataview
Un Dataview es un control que muestra datos tabulados procedentes de una tabla y permite actualizarlos directamente. A efectos de comprensión debemos pensar en un DATAGRID en VB. Allí el Datagrid está asociado a un adodc. Aquí lo está a un datasource tal y como explico a continuación:

Crear la conexión a base de datos
Dim Cn as new Connection
Cn.type="mysql"
Cn.host="localhost"
Cn.login="usuario"
Cn.clave="1234"
Cn.name="base"
try Cn.open

Una vez tenemos una conexión activa el siguiente paso es situar en el formulario un objeto datasource que es un objeto contenedor que requiere una conexión activa.

El datasource requiere la librería GB.DB.FORM.
Las propiedades mínimas para obtener la funcionalidad del datasource son:
Datasource.table="tabla o vista" ----> la tabla debe tener un índice primario
Datasource.filter = "condicion" ---> la condición que iría en una claúsula where de una sentencia select
Datasource.readonly=true/false


Ahora insertamos el control enlazado dentro del contenedor datasource. En este caso se trata de un dataview.

Definimos cabeceras del dataview
with dataview.gridview
.Columns[0].text="Codigo"
.Columns[0].width=50
.Columns[1].text="Cliente"
.Columns[1].width=100
...
end with

Algunas propiedades interesantes
Dataview.grid=true/false ---> si habrá o no rejilla
Dataview.mode=none/single ---> si se seleccionará la fila entera o no.


Posicionarse en celda
Dataview.GridView[0,0] ----> primera celda
Dataview.GridView[1,0] ----> primera celda segunda fila
Dataview.GridView[,0] ----> primera celda segunda fila
Dataview.GridView(DataView.GridView.row,DataView.GridView.col] ---> celda actual

Perfil MP  
Objetivo: Re: El Control Dataview
Hi: espero que me puedas ayudar, hace pocos dias estoi aprendiendo esto por mi mismo y bueno tengo una base de datos en mysql logre hacer la coneccion del datasource kn la tabla que quiero usar, pero no entiendo como hago para poder ver esta tabla en un dataview, intente siguiendo algunas sugerencias en paginas que encontre y ejemplos, pero okurre un error: Driver name missing.... ..... de antemano muchas gracias por tu ayuda

Perfil MP  
Objetivo: Re: El Control Dataview
Hola kaos

Sería interesante que pusieras tu código por aquí, para poder ver qué estás haciendo mal.
En principio, el mensaje de error que recibes es bastante descriptivo: falta que declares la propiedad del tipo de base de datos que estás usando.

Suponiendo que Cn es tu objeto Connection:

Dim Cn as new Connection
Cn.type="mysql" ' ---> posiblemente te falte esto
Cn.host="localhost" '---> host donde se ubica tu motor mysql
Cn.login="usuario"
Cn.Password="1234"
Cn.name="base" '---> nombre de tu bd


Saludos

P.D. Recuerda leer las normas del foro: No se permiten abreviaturas tipo SMS.

Perfil MP  
Objetivo: Re: El Control Dataview
Hola Kaos_kofrn.
Como bien te dice jguardon sería bueno que nos dieras alguna información adicional. Por ejemplo en este caso no se si has conseguido conectar la base y el error lo tienes posteriormente en el dataview o si el error lo da al conectar como te dice jguardon.

Desde luego si no le has puesto a la conexión la propiedad type no sabrá que tiene que abrir pero en ese caso no habrás conseguido establecer la conexión.

Perfil MP  
Objetivo: Re: El Control Dataview
Quisiera destacar que intente enlazar el control DataView a traves del contenedor DataSource y me guie por este excelente post, pero creo que hay algo que debo resaltar que no veo aqui y es que a mi particularmente el DataView no me mostro los registros hasta que hice lo siguiente adicional:
WITH Dataview1.GridView
.Columns.Count = 4 'valor entero de acuerdo a las columnas que quiero visualizar de la tabla enlazada
END WITH


Espero le sirva a alguien que haya enfrentado el mismo problema!

Objetivo: Re: El Control Dataview
En otra idea quisiera saber como puedo mostrar con el DataView algunos campos de una tabla, he logrado enlazarlo a traves de DataSource, pero me muestra todos los campos de los registros, yo solo quiero que me muestre algunos.

Ejemplo de la tabla:
id_users name_users age_users
0001 jhon 31
0002 lethi 34


Con esta tabla solo me interesa mostrar en pantalla los campos name_users y age_users

Gracias!

Objetivo: Re: El Control Dataview
Tengo un datasourse y un dataview, los he utilizado en postgres y corren bien, cuando los utilizo con mysql 5 me da un error: query failed;you have an error in your sql syntax check the manual that corresponds to your MYSQL server version for the right syntax to use near ' from SCestados where (cod_edo='01') limit 64 at line 1

la sintaxis que utilizo es la siguiente:
TRY $hConn.Close
$hConn = NEW Connection
WITH $hConn
.Type = "MySQL"
.Host = "localhost"
.Login = "root"
.Password = "mike2000"
.Name = "mysql"
END WITH
$hConn.Open

DataSource1.Table = "SCestados"
DataSource1.filter = "cod_edo='" & xcod & "'" 'aqui me da el error
DataSource1.ReadOnly = FALSE
DataView1.Grid = TRUE
WITH DataView1.GridView
.columns[0].text = "Cod. Edo"
.columns[0].width = 100
.columns[1].text = "Cod. Mun"
.columns[1].width = 100
END WITH
DataSource1.Refresh

la tabla tiene indice primario

Perfil MP  
Objetivo: Re: El Control Dataview
Ah utilizo gambas 2.22 en ubuntu 11.04

Perfil MP  
Objetivo: Re: El Control Dataview
Hola Miguel

Puede ser un error de sintaxis, puesto que la variable 'xcode' no sabemos de qué tipo es, sin embargo en la sentencia sql la tratas como tipo string.

Yo siempre recomiendo usar sustituciones a la hora de concatenar texto con variables, de esta forma:

DataSource1.filter = Subst("cod_edo='&1'", xcod) ' si xcod es un string


o

DataSource1.filter = Subst("cod_edo=&1", xcod) ' si xcod es un entero


De esa forma tendremos menos líos a la hora de colocar las comillas, etc.

CUando usamos la otra sintaxis basada en la ejecución directa de sql mediante el método Exec de la clase Connection, incluso no tendremos que preocuparnos por el tipo de dato ni las comillas, porque gambas se encarga de hacer las conversiones.

http://www.gambas-es.org/viewtopic.php?p=3766#p3766

Saludos

Perfil MP  
Objetivo: Re: El Control Dataview
Ahora estoy conociendo mas a gambas. El codigo de posicionamiento ed celdas no me funciona. Me dice que esta linea no puede ser una sentencia. Alguine puede ayudarme?. Lo que intento es editar una celda de un DataGrid para cambiar el valor y luego guardarlo en la base de datos correspondiemte, pero la edicion no se ejecutarla. Saludos

Perfil MP  
Ir a la página 1, 2  Siguiente

Página 1 de 2


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
No puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.0844s (PHP: 13% SQL: 87%)
Consultas SQL: 19 - Debug off - GZIP Activado