estoy intentando hacer un programa para gestionar una base de datos access 2000 y buf... creo que o tengo un pequeño lio montao o el programa se esta despollando de mi xdd
cuando pongo vigilancia para ver si lo hace bien (puntos de ruptura) me funciona todo correcto, cuando se la kito nada funciona... y juer como puede funcionar un mismo dato una vez y a la siguiente no?
bueno... tras mis lamentaciones/desahogos iniciales me gustaria preguntar si alguien conoce un buen manual donde crear una bd en una variable (xk los controles ya como k son un pokito engorrosos para enviar correctamente inserts, selects y updates a mi gusto) yo vengo de php y mysql y bueno en php tengo mysql_query ,mysql_fetch_array ...,
pero aki en visual no encuentro la forma de pasar los datos a variables directamente... alguien me puede indicar un buen manual en español sobre el asunto? xk he buscado por la red y todos utilizan los controles data o se encuentran incompletos ... seguire buscando pero si alguien dispone de información le estare muy agradecido...
gracias y disculpen las molestias
No has leído mucho la verdad
Declarar variables
Dim Cn as adodb.connection, Cmd as adodb.Command, Rec as adodb.Recordset
Dim Sql as string
Iniciar la conexión
set Cn=new adodb.connection
Cn.open la_string_de_conexión
Ejecutar un comando
sql="delete tabla where dato='" & valor & "'"
Cn.execute sql
Abrir un recordset
set rec=new adodb.recordset
rec.open string_de_recordsource,Cn,,adcmdtext
Acceder a un campo
p$=rec!dirección
Acceder a las propiedades de un campo
p$=rec.fields("nombre_campo").propiedad
donde propiedad puede ser 'name', 'type','value', ..., etc
Utilizar un objeto command
set Cmd=new adodb.command
cmd.commandtype=adcmdtext
cmd.activeconnection=cn
cmd.commandtext=sql
cmd.execute
El tipo puede ser desde una tabla a una sentencia sql pasando por un procedimiento almacenado.
Ejemplo de un comand que genera un recordset
dim Cn as adodb.connection, Cmd as adodb.command, Rec as adodb.Recordset
Set Cn=new adodb.connection
cn.open connectionstring, usuario, clave
set Cmd=new adodb.command
set Cmd=new adodb.command
cmd.commandtype=adcmdtext
cmd.activeconnection=cn
cmd.commandtext="select * from tabla order by nombre"
Rec=cmd.execute
Y esto en el modelo de datos ADO. El DAO es mas rápido y para cosas pequeñas mejor (especialmente con access). ADO es mas completo y para bases de datos sql.
RTFM
Cita de: soplo en 22 Junio 2006, 20:40 PM
No has leído mucho la verdad
Declarar variables
Dim Cn as adodb.connection, Cmd as adodb.Command, Rec as adodb.Recordset
Dim Sql as string
Iniciar la conexión
set Cn=new adodb.connection
Cn.open la_string_de_conexión
Ejecutar un comando
sql="delete tabla where dato='" & valor & "'"
Cn.execute sql
Abrir un recordset
set rec=new adodb.recordset
rec.open string_de_recordsource,Cn,,adcmdtext
Acceder a un campo
p$=rec!dirección
Acceder a las propiedades de un campo
p$=rec.fields("nombre_campo").propiedad
donde propiedad puede ser 'name', 'type','value', ..., etc
Utilizar un objeto command
set Cmd=new adodb.command
cmd.commandtype=adcmdtext
cmd.activeconnection=cn
cmd.commandtext=sql
cmd.execute
El tipo puede ser desde una tabla a una sentencia sql pasando por un procedimiento almacenado.
Ejemplo de un comand que genera un recordset
dim Cn as adodb.connection, Cmd as adodb.command, Rec as adodb.Recordset
Set Cn=new adodb.connection
cn.open connectionstring, usuario, clave
set Cmd=new adodb.command
set Cmd=new adodb.command
cmd.commandtype=adcmdtext
cmd.activeconnection=cn
cmd.commandtext="select * from tabla order by nombre"
Rec=cmd.execute
Y esto en el modelo de datos ADO. El DAO es mas rápido y para cosas pequeñas mejor (especialmente con access). ADO es mas completo y para bases de datos sql.
RTFM
todo bien explicadito!!
muchas gracias!!!
que diferencia hay entre
Dim cn As New ADODB.Connection
Dim rec As New ADODB.Recordset
y el crear un puntero y generar el objeto luego?
Dim cn As ADODB.Connection
Dim rec As ADODB.Recordset
set Cn=new adodb.connection
set rec=new adodb.recordset
Pues nunca lo he puesto así pero te voy a dar mi opinión:
Cuando usas DIM lo que haces es declarar una variable de un tipo, crear un puntero a esa variable y reservar memoria correpondiente para ella
cuando usas NEW lo que haces es crear una nueva instancia de una clase ya declarada.
Así que no veo sentido a crear una nueva instancia de una clase que aún no has declarado si haces dim X as new ...
Que me corrija alguien si lo pienso mal, pero creo que con eso puedes conseguir un puntero que apunte a nothing o bien que sea equivalente a no haber puesto el new.
;D
Cita de: soplo en 23 Junio 2006, 18:20 PM
Pues nunca lo he puesto así pero te voy a dar mi opinión:
Cuando usas DIM lo que haces es declarar una variable de un tipo, crear un puntero a esa variable y reservar memoria correpondiente para ella
cuando usas NEW lo que haces es crear una nueva instancia de una clase ya declarada.
Así que no veo sentido a crear una nueva instancia de una clase que aún no has declarado si haces dim X as new ...
Que me corrija alguien si lo pienso mal, pero creo que con eso puedes conseguir un puntero que apunte a nothing o bien que sea equivalente a no haber puesto el new.
;D
creo k te la crea ya directamente ... al menos eso nom e da error... xdxd
te queria preguntar acerca de cambiar el contenido del recordset ya que como vi en tus ejemplos para ejecutar una consulta si no entendí mal se coloca asi...
sql = "select modelo from almacenes order by modelo asc"
Cmd.CommandText = sql
rec = Cmd.Execute
pues me da error... uso no válido de la propiedad
Cita de: Hans el Topo en 23 Junio 2006, 18:32 PM
Cita de: soplo en 23 Junio 2006, 18:20 PM
Pues nunca lo he puesto así pero te voy a dar mi opinión:
Cuando usas DIM lo que haces es declarar una variable de un tipo, crear un puntero a esa variable y reservar memoria correpondiente para ella
cuando usas NEW lo que haces es crear una nueva instancia de una clase ya declarada.
Así que no veo sentido a crear una nueva instancia de una clase que aún no has declarado si haces dim X as new ...
Que me corrija alguien si lo pienso mal, pero creo que con eso puedes conseguir un puntero que apunte a nothing o bien que sea equivalente a no haber puesto el new.
;D
creo k te la crea ya directamente ... al menos eso nom e da error... xdxd
te queria preguntar acerca de cambiar el contenido del recordset ya que como vi en tus ejemplos para ejecutar una consulta si no entendí mal se coloca asi...
sql = "select modelo from almacenes order by modelo asc"
Cmd.CommandText = sql
rec = Cmd.Execute
pues me da error... uso no válido de la propiedad
soy mas burro... xd
seria asi....
sql = "select modelo from almacenes order by modelo asc"
Cmd.CommandText = sql
set rec = Cmd.Execute