Agregar Nombre Y Edad Base Datos Y Mostrarlos Con Un ColumnView


Objetivo: Agregar Nombre Y Edad Base Datos Y Mostrarlos Con Un ColumnView
Hola Amigos aqui les traigo mi primer proyecto..! Espero que les ayude y les guste..!
Bueno me precento Soy José Chen de la ciudad de Panamá tengo 19 años y curso el primer año de Ing. Sistemas Informaticos. Me gusta la programacion ya que es mas que nada saber conocimientos y saber pensar un poco...!!

Aqui les dejo mi primer programa..!
Lo que hace este programa es Agregar un nombre y una edad y mostrarla en un ColumnView..!

Requisitos
- gambas 2 "Obviamente"
- Base de Datos MySql ( pueden crearla desde www.freesql.org )

Instrucciones
Creamos un nuevo proyecto en gambas y agregamos:
textbox con el nombre "nombre"
Combobox con el nombre "edad"
Button con el nombre "Agregar"
ColumnView lo dejamos con su mismo nombre "ColumnView1"

Les Agregan tambien si decean label para saber lo que la persona debe poner..! Quedaria asi

imagen

Codigo

PUBLIC cn AS Connection ''Declaracion de Variable para la coneccion


PRIVATE FUNCTION coneccion(query AS String) AS Result ''Funcion para conectar base de dato y ejecutar una sentencia
DIM res AS Result
cn = NEW Connection
cn.close
cn.Type = "mysql"
cn.Host = "FreeSQL.org"
cn.User = "gambas"
cn.Password = "gambas"
cn.Name = "nombreyedad"
cn.Open
res = cn.Exec(query)
RETURN res
END


PRIVATE SUB colvie() ''es un tipo de funcion pero no retorna valor es para cargar los datos a la ColumnView
DIM res AS Result
DIM i AS Integer
ColumnView1.Clear ''Borra todos los datos de ColumnView1
ColumnView1.Columns.Count = 2 ''Creo dos Columnas
ColumnView1.Columns[0].Text = "Nombres" ''Le Agrego un nombre a la columna 0
ColumnView1.Columns[0].Width = 200 '' Ancho de la Columna
ColumnView1.Columns[0].Alignment = 3 ''Aliniamiento al Centro
ColumnView1.Columns[1].Text = "Edad"
ColumnView1.Columns[1].Width = 50
ColumnView1.Columns[1].Alignment = 3
res = coneccion("select * from nombreyedades order by edad") ''Llamo a la funcion coneccion y envio la sentencia
FOR i = 0 TO res.Count - 1 STEP +1 ''Sistema de repeticion para agregar los datos a la columna
ColumnView1.Add(i, res!nombre)
ColumnView1[i][1] = res!edad
res.MoveNext
NEXT
cn.Close ''Cierro la coneccion
END


PUBLIC SUB Form_Open()
DIM i AS Integer
colvie() ''Cargo los datos a la ColumnView1
FOR i = 10 TO 90 STEP +1 ''Ciclo para la edad del 10 al 90
edad.Add(i)
NEXT
END

PUBLIC SUB Agregar_Click() ''Boton de Agregar el Nombre y la Edad
DIM query AS String
DIM valor AS Boolean
query = "insert into nombreyedades value('" & nombre.text & "','" & edad.text & "')"
coneccion(query)
Message.Info("El Nombre y La Edad Fueron Agregados Correctamente ", "Aceptar")
nombre.Text = ""
edad.text = ""
colvie()
END

Aqui les dejo el Proyecto con la Base de datos ya Conectada

Bajar Codigo

Espero que les Ayude y Mucha Suerte....!!

Objetivo: Re: Agregar Nombre Y Edad Base Datos Y Mostrarlos Con Un ColumnView
COMPAÑERO BUENAS NOCHES...

Primero que todo muchas gracias por el código de el software que creaste.

de verdad para mi que soy principiante me ha servido mucho.

mi pregunta es la siguiente y no se si pecare o diré una estupidez por ignorancia pero sera posible que me regales también el código de la base de datos que usas para correr el software.

yo puedo recrearla (eso es lo que creo) pero no tengo la certeza de que lo hice bien

gracias

Perfil MP  
Objetivo: Re: Agregar Nombre Y Edad Base Datos Y Mostrarlos Con Un ColumnView
Hola

Mirando el código se puede deducir. Mira esta sentencia:
query = "insert into nombreyedades value('" & nombre.text & "','" & edad.text & "')"


Así que hay una tabla nombreyedades que tiene dos campos: nombre y edad.

Así que tu creas tu base de datos
Dim Cn as new connection, Tabla as table
Cn.login="root"
Cn.password="clave"
cn.host="localhost"
cn.type="mysql" 'este ejemplo es una conexión a mysql. Usa la conexión a donde quieras.
cn.open 'abrir con el usuario root

if cn.opened then
cn.databases.add("mibase")
cn.close 'cerrar conexión de root
cn.name="mibase"
cn.open 'abrir conexion a mibase
endif

if cn.opened then
tabla=cn.table.add("nombreyedades" 'crear tabla nombreyedades
tabla.tablefields.add("nombre",db.string,20) 'crear campo nombre de tipo string y tamaño 20
tabla.fields.add("edad",db.integer) 'crear campo edad de tipo entero
tabla.update 'grabar tabla
endif


y todo esto lo tienes explicado con detalle aquí
La clase connection

última edición por soplo el Lunes, 16 Noviembre 2009, 20:20; editado 1 vez
Perfil MP  
Objetivo: Re: Agregar Nombre Y Edad Base Datos Y Mostrarlos Con Un ColumnView
Hola, primero de todo, decirte que gracias. Soy principiante y creo que esto me valdrá para poder aprender algo mas.

La verdad es que me gustaría hacer alguna aplicación con la que insertar/leer datos en una base de datos mysql online.
Cuando llegue a casa me pondré manos a la obra con este código haber si lo consigo hacer funcionar... pero mi pregunta es,
si cambio los datos por los del servidor online podre conectar con la base de datos online? También informo de que mi base de datos es accesible desde fuera, es decir no necesita estar en la web, porque tengo una aplicación en flash en local, a la cual me permite conectar con ella...

Gracias

Objetivo: Re: Agregar Nombre Y Edad Base Datos Y Mostrarlos Con Un ColumnView
Hola de nuevo. No hace falta que contesteis al mensaje anterior. Ya he conseguido que me coja los datos de otra base de datos que tenia yo en internet...

Pero tengo una pregunta, en:
Citar:
ColumnView1.Clear ''Borra todos los datos de ColumnView1
ColumnView1.Columns.Count = 2 ''Creo dos Columnas
ColumnView1.Columns[0].Text = "Nombres" ''Le Agrego un nombre a la columna 0
ColumnView1.Columns[0].Width = 200 '' Ancho de la Columna
ColumnView1.Columns[0].Alignment = 3 ''Aliniamiento al Centro
ColumnView1.Columns[1].Text = "Edad"
ColumnView1.Columns[1].Width = 50
ColumnView1.Columns[1].Alignment = 3
res = coneccion("select * from nombreyedades order by edad") ''Llamo a la funcion coneccion y envio la sentencia
FOR i = 0 TO res.Count - 1 STEP +1 ''Sistema de repeticion para agregar los datos a la columna
ColumnView1.Add(i, res!nombre)
ColumnView1[i][1] = res!edad
res.MoveNext
NEXT

no hay forma de hacer autimatico lo de agregar columnas? es decir, yo ahora que no se pues he puesto a mano las 9 columnas que tiene la tabla, es decir
ColumnView1.Columns[0].Text = "---" ''Le Agrego un nombre a la columna 0
ColumnView1.Columns[0].Width = 200 '' Ancho de la Columna
ColumnView1.Columns[0].Alignment = 3 ''Aliniamiento al Centro
hasta el
ColumnView1.Columns[8].Text = "---" ''Le Agrego un nombre a la columna 0
ColumnView1.Columns[8].Width = 200 '' Ancho de la Columna
ColumnView1.Columns[8].Alignment = 3 ''Aliniamiento al Centro

y lo de:
ColumnView1.Add(i, res!nombre)
ColumnView1[i][1] = res!edad
hasta el
ColumnView1[i][8] = res!ultimacolumna...

Pero para mejorar esto, se podria hacer que cogiera el nombre de las columnas o por lo menos el numero de columnas o algo por el estilo? o es mucho pedir?

Gracias un saludo a todos!

P.D: este mensaje lo quise dejar sobre las 17 horas y no me dejo porque me decía que me esperara 24h, el administrador de la web puede quitarle esta restrincion? No lo digo para ofender ni mucho menos, porque si te digo la verdad, me enterado de la existencia de esta web hoy mismo, y he aprendido mas en 1 día aquí que 2 meses de buscar en Google y paginas. Solo lo digo porque foros como Cristalab funcionan bien sin la limitación de 24H.

Gracias!

Objetivo: Re: Agregar Nombre Y Edad Base Datos Y Mostrarlos Con Un ColumnView
Cubel escribió:  


P.D: este mensaje lo quise dejar sobre las 17 horas y no me dejo porque me decía que me esperara 24h, el administrador de la web puede quitarle esta restricción? No lo digo para ofender ni mucho menos, porque si te digo la verdad, me enterado de la existencia de esta web hoy mismo, y he aprendido mas en 1 día aquí que 2 meses de buscar en Google y paginas. Solo lo digo porque foros como Cristalab funcionan bien sin la limitación de 24H.

Gracias!


Eso está explicado aquí: http://foro.gambas-es.org/viewtopic.php?f=7&t=326

Respecto a la pregunta sobre los encabezados y columnas, no es posible hacerlo automáticamente, debes declarar al menos el nº de columnas y el texto para cada encabezado.
Pero el nº de columnas lo puedes obtener a partir del objeto Result que estés instanciando de esta manera:

DIM hres as Result
' conectar a la bd
'...
'obtener el nº de columnas a partir del resultado de la consulta
hres = conexion.exec("SELECT * FROM tuTabla")

ColumnView1.Columns.Count = hres.Count

' etc


Para asignar el texto de los encabezados puedes hacerlo en un SUB aparte y llamarlo desde tu rutina o al cargar el Form, pero siempre después de haber declarado el nº de columnas con la última sentencia del código de arriba.

Saludos

Perfil MP  
Objetivo: Re: Agregar Nombre Y Edad Base Datos Y Mostrarlos Con Un ColumnView
ok ok,
Bueno pues te doy las gracias por las dos cosas. Lo de las 24 horas no lo sabia. Sabiendo que lo puedo modificar no tengo problema, la próxima vez lo modifico y ya esta.

Y lo otro, pues me a quedado claro pero supongo que a la hora de hacerlo me saldrán dudas y me tocara ir en vuestra ayuda otra vez.

Objetivo: Re: Agregar Nombre Y Edad Base Datos Y Mostrarlos Con Un ColumnView
Hola tengo una duda con lo que me digiste un dia.
jguardon escribió:  


Para asignar el texto de los encabezados puedes hacerlo en un SUB aparte y llamarlo desde tu rutina o al cargar el Form, pero siempre después de haber declarado el nº de columnas con la última sentencia del código de arriba.

Saludos

Al final he decidido guardar las columnas que van a aparecer en un archivo de settings... Es decir, si pone que la columna tal esta en si que la muestre si no no. Con varios if consigo tener el numero exacto de columnas que necesito, entonces las creo. pero acto seguido me gustaria hacer un array de esto:
FOR i = 0 TO res.Count - 1 STEP +1 ''Sistema de repeticion para agregar los datos a la columna
matriculas_table.Add(i, res!matricula)
matriculas_table[i][1] = res!cliente
matriculas_table[i][2] = res!marca
matriculas_table[i][3] = res!caracteristicas
matriculas_table[i][4] = res!medidaNeumaticos

res.MoveNext
NEXT

es decir en el mismo IF que digo si es que si o que no, en el caso de que fuera que si, pues meter en un array lo que va detrás del res! lo que pasa que no se si se puede hacer o no. Tampoco tengo muy claro que puedo guardar y como en un array.

Objetivo: Re: Agregar Nombre Y Edad Base Datos Y Mostrarlos Con Un ColumnView
Hola

Cubel, aquí te dejo un código que te puede interesar. No lo he probado, pero creo que funcionará agregando tu conexión a la BD y adaptándolo a tus necesidades.

' gambas class file

PRIVATE $hres AS Result
PRIVATE $campos AS NEW String[]

PUBLIC SUB Form_Open()

'aquí va el código o rutina para abrir tu conexión

prepararEncabezadosTabla()
$hres = conexion.Exec("SELECT * FROM tuTabla")
matriculas_table.Rows.Count = $hres.Count

END

PRIVATE SUB prepararEncabezadosTabla()

DIM rf AS ResultField
DIM res AS Result
DIM col AS Integer = 0

res = conexion.Exec("SELECT * FROM tuTabla")
'asignamos el nº de columnas a partir del nº de campos de la bd
matriculas_table.Columns.Count = res.Fields.Count

'asignamos los encabezados a partir de los nombres de campo de la tabla
' o un array si lo prefieres
' DIM campos AS NEW String[] = ["campo1", "campo2", "etc"]

FOR EACH rf IN res.Fields
$campos.Add(rf.Name) 'array donde guardamos los nombres de campos
matriculas_table.Columns[col].Text = rf.Name
INC col
NEXT

END

'usamos el evento _Data del TableView para rellenarla automáticamente

PUBLIC SUB matriculas_table_Data(Row AS Integer, Column AS Integer)

$hres.MoveTo(Row)
matriculas_table.Data.Text = $hres[$campos[Column]]
' coloreamos alternativamente las filas
IF row MOD 2 = 0 THEN matriculas_table.Data.Background = Color.LightBackground

END

'No olvides cerrar la conexión cuando ya no la necesites, p.ej. en el form_close()


Saludos

Perfil MP  
Objetivo: Re: Agregar Nombre Y Edad Base Datos Y Mostrarlos Con Un ColumnView
ok voy a probarlo... ahora si me salen algunos problemas ya informo...


Página 1 de 1


  
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
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.168s (PHP: -16% SQL: 116%)
Consultas SQL: 24 - Debug off - GZIP Activado