elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Crear un registro nuevo en una base de datos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Crear un registro nuevo en una base de datos  (Leído 1,160 veces)
icisneros
GNU/Linux
Ex-Staff
*
Desconectado Desconectado

Mensajes: 1.296



Ver Perfil WWW
Crear un registro nuevo en una base de datos
« en: 19 Diciembre 2006, 19:06 pm »

Código:
AdoMensajes.Recordset.AddNew                 

AdoMensajes.Recordset.Fields("origen").Value = Usuario

En esta parte de código me da un error en la segunda linea, ¿porqué? no puedo meter los datos así en la base de datos, me deja leer pero no escribir.

Como puedo crear una nueva fila en la base de datos y guardar ciertas variables en sus campos?

Un saludo!



En línea

CeLaYa


Desconectado Desconectado

Mensajes: 543



Ver Perfil
Re: Crear un registro nuevo en una base de datos
« Respuesta #1 en: 19 Diciembre 2006, 19:11 pm »

checa como la estas abriendo, si puedes leer entonces la estas abriendo como solo lectura


En línea

"La soledad es el elemento de los grandes talentos".
Cristina de Suecia (1626-1689) Reina de Suecia.
Hans el Topo


Desconectado Desconectado

Mensajes: 1.752


"Estoy cansado de no hacer nada"


Ver Perfil WWW
Re: Crear un registro nuevo en una base de datos
« Respuesta #2 en: 19 Diciembre 2006, 22:14 pm »

de primeras...¿k error te da?

Viendo que utilizas un controlcito y dando por correcto el nombre del campo nose que puede fallar.


los campos se pueden meter asi

Código:
adomensajes.recordset!nombrecampoapelo=valor
adomensajes.recordset![nombrecampoapelo]=valor

una vez que metas te mueves a un registro para que refresque

Código:
adomensajes.recordset.update
'o
adomensajes.recordset.movefirst

muchas veces va más rapido visual que la base de datos y suele dar problemas de refrescos xD

en el caso que tengas el recourdsource en diseño agregalo también en tiempo de ejecución (a veces da fallos)

como comento celaya comprueba los permisos de la base de datos y los de conexión






« Última modificación: 19 Diciembre 2006, 22:16 pm por Hans el Topo » En línea

 
icisneros
GNU/Linux
Ex-Staff
*
Desconectado Desconectado

Mensajes: 1.296



Ver Perfil WWW
Re: Crear un registro nuevo en una base de datos
« Respuesta #3 en: 20 Diciembre 2006, 08:29 am »

El error que me da lo adjunto como imagen al mensaje y al pulsar en depurar me lleva a esa línea de código.

¿Cómo puedo revisar los permisos de la base de datos?

Permisos de escritura tiene porque yo puedo conectarme a ella a mano y escribir datos. Supongo que el control Ado tendra algun filtro de permisos tambien, como puedo darle permisos de escritura para ver si es eso?

EDITADO

He comprobado los permisos del objeto ADO y tenia mode unknow y lo he puesto en readwrite y me sigue dando el mismo error.

Tambien he probado a escribir con ado.recordset!campo y da exactamente el mismo error.

Tambien he probado a intentar ejecutar la sentencia SQL "a pelo" pero no me deja, he leido por internet que se hacia:

Código:
Adodc.recordset.execute("SQL")

Pero a mi no me reconoce la opcion execute en el recordset, en los ejemplos que he leido en internet creaban el recordset desde codigo y yo he añadido el objeto en el formulario, supongo que no habra problema.

Espero que podais ayudarme, gracias por leer.

¿Alguna otra sugerencia?

Un saludo!
« Última modificación: 20 Diciembre 2006, 08:43 am por EKDV » En línea

CeLaYa


Desconectado Desconectado

Mensajes: 543



Ver Perfil
Re: Crear un registro nuevo en una base de datos
« Respuesta #4 en: 20 Diciembre 2006, 14:07 pm »

pues según lo que pones en las imagenes el error se provoca porque no encuentra el campo "origen" en la tabla, checa si lo tienes bien escrito, o si usas una consulta SQL que hayas seleccionado el campo:

Código:
Adodc.recordset.execute("SELECT campo1,campo2, Origen FROM...")
En línea

"La soledad es el elemento de los grandes talentos".
Cristina de Suecia (1626-1689) Reina de Suecia.
Hans el Topo


Desconectado Desconectado

Mensajes: 1.752


"Estoy cansado de no hacer nada"


Ver Perfil WWW
Re: Crear un registro nuevo en una base de datos
« Respuesta #5 en: 20 Diciembre 2006, 16:39 pm »

Este post se lo recomiendo a todos los que utilizan bases de datos xD a mi me vino muy bien
intenta hacerlo en tiempo de ejecución enviando la sentencia directamente sobre la conexión (cn.execute sql)

No has leído mucho la verdad

Declarar variables
Código:
Dim Cn as adodb.connection, Cmd as adodb.Command, Rec as adodb.Recordset
Dim Sql as string

Iniciar la conexión
Código:
set Cn=new adodb.connection
Cn.open la_string_de_conexión

Ejecutar un comando
Código:
sql="delete tabla where dato='" & valor & "'"
Cn.execute sql

Abrir un recordset
Código:
set rec=new adodb.recordset
rec.open string_de_recordsource,Cn,,adcmdtext

Acceder a un campo
Código:
p$=rec!dirección

Acceder a las propiedades de un campo
Código:
p$=rec.fields("nombre_campo").propiedad
donde propiedad puede ser 'name', 'type','value', ..., etc

Utilizar un objeto command
Código:
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
Código:
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
En línea

 
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines