Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-05-2006
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 23
BlueSteel Va por buen camino
Maldito error.. list index out of bounds (0)

Hola amigos...

En una aplicación que realizo on Delphi 7 e Interbase 6.. me da este maldito error list index out of bounds (0), el cual me tiene los pelos de punta ya que necesito entregar un avance.. y no se como solucionarlo...

me explicare que tengo...

en el Formulario Principal llamado "menu" tengo la conexión a la DB llamada IDB_Compras, en el formulario llamado "proveedor" tengo :
2 TIBQuery.. IBQ_Select y IBQ_Edit
2 TIBTransaction.. IBT_Select y IBT_Edit

Además, en el formulario consta de... 1 DBGrid.. donde muestra un registro de todos los proveedores... boton para agregar, quitar y actualizar datos...

cuando ingreso al formulario.. se ejecuta el procedimeinto selecciona.. que es el siguiente

Código Delphi [-]
Procedure TProveedores.Selecciona;
Begin
     IBQ_Select.Close;
     IBQ_Select.SQL.Clear;
     IBQ_Select.SQL.Add('Select * From "Proveedor" Order By "Pro_Rut"');
     IBQ_Select.Open;
End;

el problema lo tengo para agregar.... y los procedimientos para agregar es

Código Delphi [-]
IBQ_Edit.SQL.Clear;
IBQ_Edit.SQL.Add('Insert Into "Proveedor" ("Pro_Rut","Pro_Razon","Pro_Direccion","Pro_Poblacion","Pro_Comuna","Pro_Fono","Pro_Fax)');
IBQ_Edit.SQL.Add('Values (:P1, :P2, :P3, :P4, :P5, :P6, :P7)');
IBQ_Edit.Params[0].AsString := vRut.Text;
IBQ_Edit.Params[1].AsString := vRaz.Text;
IBQ_Edit.Params[2].AsString := vDir.Text;
IBQ_Edit.Params[3].AsString := vPob.Text;
IBQ_Edit.Params[4].AsString := vCom.Text;
IBQ_Edit.Params[5].AsString := vTel.Text;
IBQ_Edit.Params[6].AsString := vFax.Text;
IBQ_Edit.ExecSQL;
IBT_Edit.Commit;
Limpia;
Selecciona;

en cuanto al procedimiento Limpia.. solo limpia las Edit que utilizo para ingresar datos...

para eliminar un registro utilizo esto.. y funciona bien
Código Delphi [-]
     Try
        If MessageDlg('Seguro de Eliminar al Proveedor'+#13+#13+ IBQ_Select['Pro_Razon'], mtConfirmation, [mbYes, mbNo], 0) = mrYes Then
           Begin
                IBQ_Edit.SQL.Clear;
                IBQ_Edit.SQL.Add('Delete From "Proveedor" Where "Pro_Rut"=:Var1');
                IBQ_Edit.Params[0].AsString := IBQ_Select['Pro_Rut'];
                IBQ_Edit.ExecSQL;
                IBT_Edit.Commit;
                IBT_Select.Commit;
                Selecciona;
           End
     Except
        ShowMessage('No existen registros que se puedan eliminar');
     End;

se supone que con IBQ_Select realizo todas las sentencias SQL para seleccionar y mostrar en el formulario.. y con IBQ_Edit realizo todas las sentencias de Eliminar, Actualizar y Agregar registros...

Antes lo habia utilizado de la misma forma y siempre me funciono.. pero ahora no se que pasa... y eso que instalé todos los programas de nuevo....
__________________
BlueSteel
Responder Con Cita
  #2  
Antiguo 24-05-2006
Avatar de Héctor Randolph
[Héctor Randolph] Héctor Randolph is offline
Miembro Premium
 
Registrado: dic 2004
Posts: 882
Poder: 20
Héctor Randolph Va por buen camino
El error se produce porque intentas acceder a un elemento del arreglo de parámetros que no existe, revisa bien la sintaxis de la sentencia INSERT porque seguramente tienes un error.

Saludos
Responder Con Cita
  #3  
Antiguo 24-05-2006
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
¿y si pruebas con la propiedad ParamByName?
IBQ_Edit.ParamByName('P1').AsString := vRut.Text;


y te faltan unas comillas al final en :
... "Pro_Comuna","Pro_Fono","Pro_Fax")');
__________________


Última edición por ContraVeneno fecha: 24-05-2006 a las 18:02:08.
Responder Con Cita
  #4  
Antiguo 24-05-2006
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 23
BlueSteel Va por buen camino
gracias.. ya lo solucione.... me habia faltado cerrar unas comillas.... que tonto soy... ahora tengo claro que este error se da cuando hay una sentencia mal escrita....

Las máquinas no se equivocan... los sw. tampoco (weno..salvo windows... )... eso de ser olvidadiso...
__________________
BlueSteel
Responder Con Cita
  #5  
Antiguo 17-02-2009
danielDelphi danielDelphi is offline
Registrado
 
Registrado: feb 2009
Posts: 4
Poder: 0
danielDelphi Va por buen camino
Thumbs up Ayuda por favor tengo delphi 5 y no se como guardar datos a traves de un query

BUenas tardes A todos
lo q pasa es q yo estoy iniciando en delphi y tengo q crear una aplicacion pek en delhpi 5 y no tengo ni la mas remota idea de como darle los paarametros al query
me presenta el error list index out of bounds(0), si bluesteel dice q es error de sintaxis pero no la veo mal, ademas es una sentencia muy basica
miren el codigo

Código Delphi [-]procedure TForm1.Button1Click(Sender: TObject);
begin AlmacenarQry.CleanupInstance; AlmacenarQry.SQL.add('Insert Into "traslado" ("caso","asunto","program","ing_asig","bd_cono","fecha","tipo")');
AlmacenarQry.SQL.Add('Values(:P1, :P2, :P3, :P4, :P5, :P6, :P7)');
AlmacenarQry.Parameters[0].Value:=Edit1.text AKI SE REBIENTA CON EL LIST INDEX OUT OF BOUNDS AlmacenarQry.Parameters[1].Value:=Edit2.Text; AlmacenarQry.Parameters[2].Value:=Edit3.Text; if RadioBUtton1.Checked=True then Begin AlmacenarQry.Parameters[3].Value:=RadioButton1.Caption; end;

if RadioBUtton2.Checked=True then Begin AlmacenarQry.Parameters[3].Value:=RadioButton2.Caption; end;

if RadioBUtton3.Checked=True then Begin AlmacenarQry.Parameters[3].Value:=RadioButton3.Caption; end;

if RadioBUtton4.Checked=True then Begin AlmacenarQry.Parameters[3].Value:=RadioButton4.Caption; end;

if RadioBUtton5.Checked=True then Begin AlmacenarQry.Parameters[3].Value:=RadioButton5.Caption; end;

if RadioBUtton6.Checked=True then if Edit5.Text<> '' then Begin AlmacenarQry.Parameters[3].Value:=Edit5.Text; end;


AlmacenarQry.Parameters[3].Value:=Edit4.Text;
AlmacenarQry.Parameters[4].Value:=DateTimePicker1.Date;
AlmacenarQry.Parameters[5].Value:=COmbobox1.Text;
end;



serian tan amables de ayudarme a iniciar grax
Responder Con Cita
  #6  
Antiguo 17-02-2009
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
No sé si tenga algo que ver pero esta sentencia:

Código Delphi [-]
AlmacenarQry.CleanupInstance

seguro que no hace bien. Está relacionada con la destrucción de objetos y no debe usarse directamente y menos en este contexto.

// Saludos
Responder Con Cita
  #7  
Antiguo 17-02-2009
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Yo también creo que va por ahí, en lugar de "CleanupInstance" debería ser "SQL.Clear"
__________________

Responder Con Cita
  #8  
Antiguo 19-02-2009
danielDelphi danielDelphi is offline
Registrado
 
Registrado: feb 2009
Posts: 4
Poder: 0
danielDelphi Va por buen camino
Question

muchachos , cambie el "CleanUpInstance" por el SQL.Clear y me sigue rebentando con el error de list index out of bounds
Estoy desesperado, alguna otra idea
gracias
Responder Con Cita
  #9  
Antiguo 19-02-2009
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
A ver. Yo lo que creo es que por alguna razón no está tomando encontrando los parámetros y puede deberse a alguna cuestión con las comillas, como en el mensaje inicial del hilo.

Justo después de las dos instrucciones AlmacenarQry.SQL.Add, copia el texto de AlmacenarQry.SQL.Text en algún lado, un memo, y pégalo aquí para ver cómo queda la consulta final y así podamos ver más claro dónde está el error.

// Saludos
Responder Con Cita
  #10  
Antiguo 20-02-2009
danielDelphi danielDelphi is offline
Registrado
 
Registrado: feb 2009
Posts: 4
Poder: 0
danielDelphi Va por buen camino
Conexion ADO Y Tquery

roman, vea lo noto de raro, es que la conexion es TADOCONNECTION y la query es TQUERY
tendra eso algo q ver?
otra pregunta, ehh la query no debe estar almacenda en la bd cierto?
grax
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Error List index out of bounds (14) AMINOA2R Firebird e Interbase 3 30-09-2005 00:32:57
List Index out of bounds (10)... sostro Conexión con bases de datos 3 17-05-2005 17:00:39
Error: List Index Out Bounds() MasterXP SQL 4 18-02-2005 06:41:06
Error (list index out of bounds) en Zeos DBO 6.0.12 hhuillcen MySQL 2 09-12-2003 19:44:11
List index out of bounds jmselesan OOP 0 03-12-2003 15:14:53


La franja horaria es GMT +2. Ahora son las 15:47:46.


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