¿Cómo guardar datos?...
Hola que tal quisiera que me pudieras ayudar, tengo dudas con respecto a como guardar datos en visual, estoy trabajando con mysql, y quiero guardar los datos que introduzco en mi formulario.. ¿cómo puedo hacer?...
1 Respuesta
Respuesta
1
1
Anónimo
El comando para actualizar datos en una tabla es UPDATE, esta es la ayuda de como usarlo.
UPDATE [DatabaseName1!]TableName1 SET Column_Name1 = eExpression1
[, Column_Name2 = eExpression2 ...] WHERE FilterCondition1 [AND | OR FilterCondition2 ...]
Parámetros
[DatabaseName1!]TableName1
Especifica la tabla en la que se actualizan registros con valores nuevos.
DatabaseName1! Especifica el nombre de una base de datos no actual en la que se encuentra la tabla. Es necesario incluir el nombre de la base de datos en la que se encuentra la tabla si no es la base de datos actual. Incluya el delimitador signo de exclamación (!) Después del nombre de la base de datos y antes del nombre de la tabla.
SET Column_Name1 = eExpression1 [, Column_Name2 = eExpression2
Especifica qué columnas están actualizadas y sus nuevos valores. Si se omite la cláusula WHERE, se actualizarán todas las filas de la columna con el mismo valor.
WHERE FilterCondition1 [AND | OR FilterCondition2 ...]]
Especifica los registros que se actualizan con valores nuevos.
FilterCondition especifica los criterios que deben satisfacer los registros para actualizarse con nuevos valores. Puede incluir tantas condiciones como desee, si las conecta con el operador AND u OR. También puede utilizar el operador NOT para invertir el valor de una expresión lógica o utilizar EMPTY( ) para comprobar si hay campos vacíos.
Observaciones
UPDATE - SQL sólo puede actualizar registros en una sola tabla. Tenga en cuenta que no se admiten subconsultas en UPDATE - SQL.
Puede determinar la cantidad de registros actualizados verificando el valor de la variable del sistema _TALLY inmediatamente después del comando UPDATE - SQL.
A diferencia de REPLACE, UPDATE - SQL utiliza el bloqueo de registros cuando actualiza varios registros de una tabla abierta para acceso compartido. Este hecho disminuye la contención de registros en situaciones de varios usuarios, pero puede reducir el rendimiento. Para conseguir el máximo rendimiento, abra la tabla para uso exclusivo o utilice FLOCK( ) para bloquear la tabla.
Ejemplo
El ejemplo siguiente abre la tabla customer de la base de datos testdata. UPDATE -SQL se usa para establecer en 25 todos los valores del campo maxordamt.
Close databases
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE Customer && Abre la tabla customer
UPDATE customer SET maxordamt = 25
Espero te sirva, si no te resulta claro decime un caso particular de lo que tienes que grabar y te armo el comando.
Salu2 y exitos!
UPDATE [DatabaseName1!]TableName1 SET Column_Name1 = eExpression1
[, Column_Name2 = eExpression2 ...] WHERE FilterCondition1 [AND | OR FilterCondition2 ...]
Parámetros
[DatabaseName1!]TableName1
Especifica la tabla en la que se actualizan registros con valores nuevos.
DatabaseName1! Especifica el nombre de una base de datos no actual en la que se encuentra la tabla. Es necesario incluir el nombre de la base de datos en la que se encuentra la tabla si no es la base de datos actual. Incluya el delimitador signo de exclamación (!) Después del nombre de la base de datos y antes del nombre de la tabla.
SET Column_Name1 = eExpression1 [, Column_Name2 = eExpression2
Especifica qué columnas están actualizadas y sus nuevos valores. Si se omite la cláusula WHERE, se actualizarán todas las filas de la columna con el mismo valor.
WHERE FilterCondition1 [AND | OR FilterCondition2 ...]]
Especifica los registros que se actualizan con valores nuevos.
FilterCondition especifica los criterios que deben satisfacer los registros para actualizarse con nuevos valores. Puede incluir tantas condiciones como desee, si las conecta con el operador AND u OR. También puede utilizar el operador NOT para invertir el valor de una expresión lógica o utilizar EMPTY( ) para comprobar si hay campos vacíos.
Observaciones
UPDATE - SQL sólo puede actualizar registros en una sola tabla. Tenga en cuenta que no se admiten subconsultas en UPDATE - SQL.
Puede determinar la cantidad de registros actualizados verificando el valor de la variable del sistema _TALLY inmediatamente después del comando UPDATE - SQL.
A diferencia de REPLACE, UPDATE - SQL utiliza el bloqueo de registros cuando actualiza varios registros de una tabla abierta para acceso compartido. Este hecho disminuye la contención de registros en situaciones de varios usuarios, pero puede reducir el rendimiento. Para conseguir el máximo rendimiento, abra la tabla para uso exclusivo o utilice FLOCK( ) para bloquear la tabla.
Ejemplo
El ejemplo siguiente abre la tabla customer de la base de datos testdata. UPDATE -SQL se usa para establecer en 25 todos los valores del campo maxordamt.
Close databases
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE Customer && Abre la tabla customer
UPDATE customer SET maxordamt = 25
Espero te sirva, si no te resulta claro decime un caso particular de lo que tienes que grabar y te armo el comando.
Salu2 y exitos!
Oye disculpa pero la verdad no me resulta claro porque no se mucho de visual, lo que quiero es insertar el nombre y código en una tabla llamada agendaus lo estaba intentando con el insert into pero no me resulto...
Lo hice de esta manera
insert into agendaus (nombre, codigo);
values ("juan" "0000")
Pero no funciona
Lo hice de esta manera
insert into agendaus (nombre, codigo);
values ("juan" "0000")
Pero no funciona
Ese comando que me escribís es correcto, si no funciona puede ser porque tal vez no tengas bien hecha la conexión a la base de datos que por no ser nativa de visual fox lo que tienes que hacer es usar una ODBC de MySql. Necesitaría en todo caso que me pases el código de error o que te dice exactamente el error al momento de grabar los datos para investigar si es problema de conexión o de alguna otra cosa!
Ya estoy utilizando el ODBC y la conexión funciona bien, he hecho las consultas y me funciona perfect pero cuando utilizo el insert se abre una ventana donde esta mi proyecto, yo lo estaba intentando con el insert haber que tal pero lo que quiero es insertar valores en mi formulario y guardarlos en mi base de datos...
Entiendo, pero necesitaría que me expliques con más detalles que es lo que sucede al usar el insert, ¿qué ventana te muestra? ¿No da ningún mensaje de error? ¿No estarás usando buffering tal vez por lo que el comando anda pero no graba?
Hola que tal disculpa la demora, sabes logre insertar valores en mi base de datos pero tengo un pequeño problema, no puedo insertar más de 14 valores con mi insert. Tu crees que me puedas ayudar. ¿Lo qué pasa es que cuando coloco otro campo en mi insert me sale un error... que puedo hacer?...
Seguramente el problema no es la cantidad de campos, sino el largo del comando que estas escribiendo en un solo registro, no podes tener más de 256 caracteres por reenglón, yo lo que te diría es que cada diez campos pone un ; (punto y coma) y seguí escribiendo abajo... EJ:
INSERT INTO tabla (CAMPO1,CAMPO2,CAMPO3,CAMPO4,CAMPO5,;
CAMPO6,CAMPO7,CAMPO8,CAMPO9,CAMPO10);
VALUES (VALOR1,VALOR2,VALOR3,VALOR4,VALOR5,;
VALOR6, VALOR7, VALOR8, VALOR9, VALOR10)
INSERT INTO tabla (CAMPO1,CAMPO2,CAMPO3,CAMPO4,CAMPO5,;
CAMPO6,CAMPO7,CAMPO8,CAMPO9,CAMPO10);
VALUES (VALOR1,VALOR2,VALOR3,VALOR4,VALOR5,;
VALOR6, VALOR7, VALOR8, VALOR9, VALOR10)
hola que tal sabes lo hice como tu dices pero me sigue generando el mismo error este es el codigo que utilizo
xcodigo=thisform.pageframe1.page1.text1.value
xnombre=thisform.pageframe1.page1.text2.value
xcedula=thisform.pageframe1.page1.text3.value
xnrorif=thisform.pageframe1.page1.text4.value
xnronit=thisform.pageframe1.page1.text14.value
xdireccion=thisform.pageframe1.page1.edit1.value
xtelefonos=thisform.pageframe1.page1.text6.value
xfax=thisform.pageframe1.page1.text13.value
xfecha=thisform.pageframe1.page1.text12.value
xcontacto=thisform.pageframe1.page1.text7.value
xlimite=thisform.pageframe1.page1.text15.value
xexceso=thisform.pageframe1.page1.text16.value
if (thisform.pageframe1.page1.optiongroup4.option1.value=1)then
xopcion=1
SQLEXEC(xCONTROL2, "insert into cliempre(codigo,tipo,nombre,cedula,nrorif,;
nronit,direccion,telefonos,numerofax,fecha,perscont,limite,exceso);
values (?xcodigo,?xopcion,?xnombre,?xcedula,?xnrorif,;
?xnronit,?xdireccion,?xtelefonos,?xfax,?xfecha,?xcontacto,?xlimite,?xexceso)")
else
if (thisform.pageframe1.page1.optiongroup4.option2.value=1)then
xopcion=1
SQLEXEC(xCONTROL2, "insert into cliempre(codigo,tipo,nombre,cedula,nrorif,;
nronit,direccion,telefonos,numerofax,fecha,perscont,limite,exceso);
values (?xcodigo,?xopcion,?xnombre,?xcedula,?xnrorif,;
?xnronit,?xdireccion,?xtelefonos,?xfax,?xfecha,?xcontacto,?xlimite,?xexceso)")
Endif
Hasta allí estamos bien pero cuando intento insertar otra variable me sale un error que dice el "comando contiene una frase o palabra clave no reconocida"
xcodigo=thisform.pageframe1.page1.text1.value
xnombre=thisform.pageframe1.page1.text2.value
xcedula=thisform.pageframe1.page1.text3.value
xnrorif=thisform.pageframe1.page1.text4.value
xnronit=thisform.pageframe1.page1.text14.value
xdireccion=thisform.pageframe1.page1.edit1.value
xtelefonos=thisform.pageframe1.page1.text6.value
xfax=thisform.pageframe1.page1.text13.value
xfecha=thisform.pageframe1.page1.text12.value
xcontacto=thisform.pageframe1.page1.text7.value
xlimite=thisform.pageframe1.page1.text15.value
xexceso=thisform.pageframe1.page1.text16.value
if (thisform.pageframe1.page1.optiongroup4.option1.value=1)then
xopcion=1
SQLEXEC(xCONTROL2, "insert into cliempre(codigo,tipo,nombre,cedula,nrorif,;
nronit,direccion,telefonos,numerofax,fecha,perscont,limite,exceso);
values (?xcodigo,?xopcion,?xnombre,?xcedula,?xnrorif,;
?xnronit,?xdireccion,?xtelefonos,?xfax,?xfecha,?xcontacto,?xlimite,?xexceso)")
else
if (thisform.pageframe1.page1.optiongroup4.option2.value=1)then
xopcion=1
SQLEXEC(xCONTROL2, "insert into cliempre(codigo,tipo,nombre,cedula,nrorif,;
nronit,direccion,telefonos,numerofax,fecha,perscont,limite,exceso);
values (?xcodigo,?xopcion,?xnombre,?xcedula,?xnrorif,;
?xnronit,?xdireccion,?xtelefonos,?xfax,?xfecha,?xcontacto,?xlimite,?xexceso)")
Endif
Hasta allí estamos bien pero cuando intento insertar otra variable me sale un error que dice el "comando contiene una frase o palabra clave no reconocida"
OK, eso te sucede porque el string con el insert que estás armando tiene un límite de 256 caracteres.
"insert into cliempre(codigo,tipo,nombre,cedula,nrorif,;
nronit,direccion,telefonos,numerofax,fecha,perscont,limite,exceso);
values (?xcodigo,?xopcion,?xnombre,?xcedula,?xnrorif,;
?xnronit,?xdireccion,?xtelefonos,?xfax,?xfecha,?xcontacto,?xlimite,?xexceso)"
Esta expresión tiene 249 caracteres, al agregar otro campo superas los 256 y te da error, lo que tienes que hacer es acortar la cadena dividiéndola con + entre varios string.
ejemplo:
"insert into cliempre(codigo,tipo,nombre,cedula,nrorif,;
nronit,direccion,telefonos,numerofax,fecha,perscont,limite,exceso)" + ;
"values (?xcodigo,?xopcion,?xnombre,?xcedula,?xnrorif,;
? ¿Xnronit,? ¿Xdireccion,? ¿Xtelefonos,? ¿Xfax,? ¿Xfecha,? ¿Xcontacto,? ¿Xlimite,? Xexceso)"
"insert into cliempre(codigo,tipo,nombre,cedula,nrorif,;
nronit,direccion,telefonos,numerofax,fecha,perscont,limite,exceso);
values (?xcodigo,?xopcion,?xnombre,?xcedula,?xnrorif,;
?xnronit,?xdireccion,?xtelefonos,?xfax,?xfecha,?xcontacto,?xlimite,?xexceso)"
Esta expresión tiene 249 caracteres, al agregar otro campo superas los 256 y te da error, lo que tienes que hacer es acortar la cadena dividiéndola con + entre varios string.
ejemplo:
"insert into cliempre(codigo,tipo,nombre,cedula,nrorif,;
nronit,direccion,telefonos,numerofax,fecha,perscont,limite,exceso)" + ;
"values (?xcodigo,?xopcion,?xnombre,?xcedula,?xnrorif,;
? ¿Xnronit,? ¿Xdireccion,? ¿Xtelefonos,? ¿Xfax,? ¿Xfecha,? ¿Xcontacto,? ¿Xlimite,? Xexceso)"
- Compartir respuesta
- Anónimo
ahora mismo