FoxPro/Visual FoxPro - Sintaxis en SQL

 
Vista:

Sintaxis en SQL

Publicado por Pato (27 intervenciones) el 05/08/2003 02:02:48
Amigos:
Necesito pasar la información de un cursor a una tabla, estoy usando las claúsulas INSERT INTO tabla (campo, campo) SELECT cursor. campo, campo FROM cursor WHERE expl y me arroja error de sintaxis. Ya probé algunas variaciones sugeridas en los libros sin éxito.
¿Alguien me diría en que estoy mal?

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Sintaxis en SQL

Publicado por Roman Suazo (2723 intervenciones) el 05/08/2003 04:26:42
Pon el codigo que usas y los resultados que estas teniendo,asi como
tambien si usas bufering , etc. de lo contrario creo que va ser algo dificil ayudarte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sintaxis en SQL

Publicado por Pato (27 intervenciones) el 05/08/2003 21:20:09
Este es el código tal cual lo estoy escribiendo

SELECT serieird, seriesc, cveinst, estado FROM ird;
WHERE estado="TRANSITO" INTO CURSOR cursor2

*&&&&&&&Aquí empieza la parte con problema&&&&&&

INSERT into provisional (serieird, seriesc, estado);
SELECT cursor2.serieird, seriesc, estado;
FROM cursor2 WHERE cveinst =thisform.container.txtcveinst.value

El mensaje que aparece al momento de ejecutar es Sintaxis Error.

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sintaxis en SQL

Publicado por Roman Suazo (2723 intervenciones) el 05/08/2003 22:58:48
TAL VEZ esto te ayude...

Segun lei en la ayuda tu INSERT esta incompleto, es decir, debe ser algo asi

insert into tabla (campo1, campo2) values (valor1, valor2)

En otras palabras o el insert esta incompleto (le falta la parte de VALUES) o quieres ingresar los registros a traves de un SELECT, lo
cual segun he leido no existe
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sintaxis en SQL

Publicado por Pato (27 intervenciones) el 06/08/2003 03:28:52
De hecho la parte de INSERT si me funciona ya que si después uso la clausula VALUE........... los valores se insertan sin problema en la tabla, incluso en varios registros a la vez. El problema surge en SELECT o sea en la fuente de donde voy a alimentar la tabla.
Si revisas la info enla MSDN Library Visual Studio te encuentras lo siguiente:

INSERT INTO Statement


Adds a record or multiple records to a table. This is referred to as an append query.

Syntax

Multiple-record append query:

INSERT INTO target [(field1[, field2[, ...]])] [IN externaldatabase]
SELECT [source.]field1[, field2[, ...]
FROM tableexpression

La única parte que no uso es la de IN ya que no obtengo la información de la tablas.

¿Que opinas?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sintaxis en SQL

Publicado por Roman Suazo (2723 intervenciones) el 06/08/2003 06:51:24
Ok, como esta dudoso el uso del INSERT te recomiendo que mejor
uses el APPEND FROM, el cual me parece mas adecuado en tu caso.

Otra opcion seria es que en SELEC los datos los pusieras en un arreglo
y despues en el INSERT lo utilices para añadir los datos a la tabla (esa
sintaxis si me aprece en mi ayuda)

Otra cosa que TAL VEZ, sea lo que te provoque el problema es el
THISFORM, ya que este solo puede ser usado dentro de los metodos
y eventos de la forma y no dentro de un objeto o ventana de comandos.

Por cierto, yo uso el vfp6 y la verdad es que en mi ayuda no sale nada
parecido a la sintaxis que me muestras.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sintaxis en SQL

Publicado por RAUL BARRIOS (5 intervenciones) el 19/08/2003 21:27:48
HABER HABER ...
AMIGOS ... ESTE ES UN TIPO CASO DE CREAR UN CURSOR DE SOLO LECTURA... ESTOS CURSORES ONLY READ SE CREAN CON BASE EN UNA SENTENCIA SELECT , EN OTRAS PALABAS , SI YO GUARDO EL RESULTADO DE UNA BUSQUEDA EN UN CURSOR ATRAVEZ DE UN SELECT ESTE CURSOR SERA DE NATURALEZA ONLY READ.

PARA SOLUCIONAR TU PROBLEMA ES MEJOR GUARDAR EL RESULTADO EN UNA TABLA TEMPORAL EN DISCO CON LA SENTENCIA

SELECT * FROM <<TABLE>> WHERE <<CONDITION>> INTO TABLE <<NOMBRE DE TABLA TEMPORAL EN DISCO>>
En este caso si puedes realizar un insert posteriormente.

chauuuuuuuuu!!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sintaxis en SQL

Publicado por Lisandro (65 intervenciones) el 06/08/2003 07:25:46
Yo en estos casos uso lo siguiente:

SELECT cursor2
SCAN
SCATTER MEMVAR
INSERT INTO provisional FROM MEMVAR
ENDSCAN
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sintaxis en SQL

Publicado por Pato (27 intervenciones) el 07/08/2003 03:23:35
Lisandro gracias me funcionó perfecto......lo que ahora me pasa es que no puedo borrar los registros de la tabla, al momento de usar PACK o ZAP (después de DELETE por supuesto) me indica que la tabla esta en uso.

Roman, la información la saqué de MSDN Library Visual Studio, son los 2 últimos discos de la suite
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sintaxis en SQL

Publicado por Roman Suazo (2723 intervenciones) el 07/08/2003 18:45:54
Para que te funcione el PACK la tabla debe ser usada en modo exclusivo. NO es recomendable usar PACK
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sintaxis en SQL

Publicado por Roman Suazo (2723 intervenciones) el 07/08/2003 19:25:47
Para que te funcione el PACK la tabla debe ser usada en modo exclusivo. NO es recomendable usar PACK
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sintaxis en SQL

Publicado por Pato (27 intervenciones) el 07/08/2003 20:34:10
¿Me sugieres algo para vaciar mi tabla?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sintaxis en SQL

Publicado por Roman Suazo (2723 intervenciones) el 07/08/2003 22:45:11
Bueno, el procedimiento no debe ser ejecutadom diariamente sino mas
bien cada 15 dias o un mes, es como darle mantenimiento a tu base de
datos, el PACK es muy riesgoso ya que no hay forma de saber si se ejecuto bien, ademas se puede ir la energia electrica en el momento de su ejecucion asi dañando las tablas. Lo que se recomienda es que hagas una copia de la tablas EXCLUYENDO los registros marcados como borrados, asi el proceso tiene menos riesgos. Generalmente lo harias teniendo el respectivo backup, etc.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sintaxis en SQL

Publicado por Pato (27 intervenciones) el 08/08/2003 22:24:18
De hecho sólo pretendo usar PACK con una tabla para uso provisional, en la que iré almacenando datos para después vaciarla y así (n) veces.
Por cierto tengo problemas con el EXCLUSIVE en el PACK me arroja un mensaje que dice que la tabla ya está en uso.
¿Me ayudas?
Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sintaxis en SQL

Publicado por Roman Suazo (2723 intervenciones) el 09/08/2003 04:09:39
EL problemita es que lo que dice el mensaje, ya tienes la tabla abierta.

Prueba con algo como esto:

close database all
use tabla in 0 exclusive
selec tabla
pack

El CLOSE DATABASE no es necesario , solo usalo como prueba para si
estar seguro que no hay tabla abierta

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sintaxis en SQL

Publicado por Pato (27 intervenciones) el 18/08/2003 20:12:47
Roman, estoy regresando de vacaciones y retomando este asunto.
Voy a probar lo que me sugieres pero no entiendo muy bién que hace el "0 exclusive" .
Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar