Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Como ejecuto varios insert en interbase (https://www.clubdelphi.com/foros/showthread.php?t=73744)

tulio 13-05-2011 19:51:36

Como ejecuto varios insert en interbase
 
Hola Foro

les comento que necesito hacer varios insert en una tabla y cuando los corro desde ibexpert o desde database de delphi 7 me da el siguiente error

error en linea 2 char 2

Esto son los insert que da el error.

INSERT INTO COMPROWEB ( NRO_CLIENTE , PERIODO , ANIO ) VALUES ( '13186', '5', '2011')
INSERT INTO COMPROWEB ( NRO_CLIENTE , PERIODO , ANIO ) VALUES ( '13186', '5', '2011')
INSERT INTO COMPROWEB ( NRO_CLIENTE , PERIODO , ANIO ) VALUES ( '25550', '6', '2006')
INSERT INTO COMPROWEB ( NRO_CLIENTE , PERIODO , ANIO ) VALUES ( '25550', '10','2010')

Si alguien sabe como se arregla o que soft utilizar para hacer insert a una tabla en forma masiva se lo agradezco.

Saludos y gracias

tulio

Caral 13-05-2011 19:55:10

Hola
Campos????, que campos ????.
Numericos, texto, fecha ?????.
Pones todo como texto, son campos texto todos ????.
Saludos

guillotmarc 13-05-2011 19:58:10

Hola.

En IBExpert los tienes que ejecutar en la pantalla "Script Executive" y no en la pantalla "SQL Editor", puesto que eso que has indicado no es una sentencia SQL, sino un conjunto de sentecias SQL, es decir, un Script SQL.

Saludos.

maeyanes 13-05-2011 20:00:22

Hola...

Si quieres hacer inserts masivos, necesitas usar un script.

El error que recibes es por que las sentencias que estás usando, ibexpert las toma como una sola sentencia y detecta errores.

Para hacer la prueba desde IBExpert usa el Script Executive y separa cada sentencia Insert con un ;.

Código SQL [-]
INSERT INTO COMPROWEB ( NRO_CLIENTE , PERIODO , ANIO ) VALUES ( '13186', '5', '2011');
INSERT INTO COMPROWEB ( NRO_CLIENTE , PERIODO , ANIO ) VALUES ( '13186', '5', '2011');
INSERT INTO COMPROWEB ( NRO_CLIENTE , PERIODO , ANIO ) VALUES ( '25550', '6', '2006');
INSERT INTO COMPROWEB ( NRO_CLIENTE , PERIODO , ANIO ) VALUES ( '25550', '10','2010');


Saludos...

tulio 13-05-2011 20:00:32

Gracias por responder

si por ejemplo el periodo es caracter y nro de cliente y anio son integer, en los values hay que enviarlos de otra manera

saludos

Caral 13-05-2011 20:02:10

Hola
Los campos numericos NO se encierran entre comillas.
Saludos

maeyanes 13-05-2011 20:03:02

Hola...

Tu sentencia tendría que ser algo como:

Código SQL [-]
INSERT INTO COMPROWEB ( NRO_CLIENTE , PERIODO , ANIO ) VALUES ( 13186, '5', 2011);

Si te fijas, los valores para los campos tipo Integer no están encerrados entre comillas.



Saludos...

tulio 13-05-2011 20:08:16

Usando el Ibexpert, uso el script executive y me da el siguiente error que DB is not open, pero a la base de datos ya la he habierto. Sera porque el ibexpert es limitado y no el full

saludos y gracias

Caral 13-05-2011 20:17:46

Hola
Cita:

Empezado por tulio (Mensaje 399977)
Sera porque el ibexpert es limitado y no el full

Lo dudo mucho.
Saludos

maeyanes 13-05-2011 20:18:11

Hola...

Checa la ventana del Script Executive, ahí vas a ver un menú que lista las bases de datos que tienes registradas en IBExpert, selecciona la que vas a usar para ejecutar el script. Si la BD está desconectada te debe preguntar si te quieres conectar a ella.


Saludos...

tulio 13-05-2011 20:21:31

Foro Muchas Gracias por ayudarme

Los problemas eran dos por los que no podia hacer los insert

Primero
en el script executive al principio no le ponia la apertura de la base
CONNECT 'C:\Sistemas\BASE_DE_DATOS\DATOS.GDB' USER 'SYSDBA' PASSWORD 'masterkey';

y lo segundo era que al final de cada insert no le ponia el punto y como ;

Con esas dos cosas andubo de diez

Muchas gracias por el interes de todos, nos vemos ....

tulio

guillotmarc 13-05-2011 21:57:08

Hola Tulio

Cita:

Empezado por tulio (Mensaje 399981)
Primero
en el script executive al principio no le ponia la apertura de la base
CONNECT 'C:\Sistemas\BASE_DE_DATOS\DATOS.GDB' USER 'SYSDBA' PASSWORD 'masterkey';

Esto no es imprescindible ponerlo siempre.

En la barra superior del Script Executive, puedes activar la casilla "use current connection", con lo que el Script se ejecutará sobre la base de datos que tengas abierta en IB-Expert.

Saludos.


La franja horaria es GMT +2. Ahora son las 16:31:56.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi