Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-02-2004
Avatar de orfeo
orfeo orfeo is offline
Miembro
 
Registrado: may 2003
Posts: 99
Poder: 22
orfeo Va por buen camino
Question un un INSERT INTO 'Operacion no Aplicable' con ODBC+MySQL

Hola, he querido ser una programador prolijo y dejar de usar los data-Aware, solo usar las hermosas sentencias SQL, lo malo es que no me andan


Las sentencias SQL estan corectas (creo), estas andan desde el SQL Explorador.

El primer insert anda, igual que 'LAST_INSERT_ID() ' retorna el valor corecto, el problema esta en el ultimo insert ( sobre Telefono_own_EmpresaInspeccion), al ejecutar el .ExecSQL; me dice que 'no es una operacion aplicable', el debuger me tira el error de MySQL 1216.
La DOC indica: "'Deadlock, lock wait timeout, and foreign key constraint violations (no parent row, child rows exist) now return native MySQL error codes 1213, 1205, 1216, 1217, respectively."
lo raro es que si inserto la tupla desde el SQL explorer anda.

Tampoco me andan algunas UPDATE sobre telefono, tirando errores similares, sindo que andas sobre el SQL Explorer.

La verdad es que no se si es un error pavo, no se que mirar...

Les mando el codigo y los create table por si alguno tiene ganas de mirarlos.

chau, y gracias..
Código:
/----codigo:
 with dmSPI.QTemp do
        begin
          Close;
          SQL.Clear;
          SQL.Add('INSERT INTO TELEFONO (caracteristica,numero,descripcion,tipo)');
          SQL.Add('VALUES (:caract,:num,:desc,:tipo)');
          ParamByName('num').AsString:=edtTelefono.Text;
          ParamByName('caract').AsString:=edtCaracteristica.Text; 
          ParamByName('desc').AsString:=mmoDescripcion.Text;
          ParamByName('tipo').AsString:=cmbTipo.Items.Strings[cmbTipo.ItemIndex];
          ExecSQL; // inserta corectamente

          Close;
          SQL.Clear;
          SQL.Add('SELECT LAST_INSERT_ID() as lastID');
          open;
          KeyID:=Fields.FieldByName('lastID').AsInteger;
          ShowMessage(intToSTR(KEYID)+':'+nombreempresa); // dato correcto
     end;

      with dmSPI.QTemp do
        begin
          Close;
          SQL.Clear;
          SQL.Add('INSERT INTO Telefono_own_EmpresaInspeccion (id,empresaInspeccion)');
          SQL.Add('VALUES (:id,:nombre);');
          ParamByName('id').AsWord:=KeyID;
          ParamByName('nombre').AsString:=nombreempresa;
          ExecSQL; *falla y tira el error*
     end;

\-

/---CREATE TABLE ---

CREATE TABLE `Telefono` (
  id bigint(20) unsigned  NOT NULL auto_increment,
  `numero` char(20) NOT NULL default '',
  `caracteristica` char(10) NOT NULL default '',
  `descripcion` varchar(100) default '',
  `tipo` enum('TEL','TEL/FAX','FAX','CEL') default 'TEL',
   PRIMARY KEY  (id)
) TYPE=InnoDB COMMENT='Contiene telefonos de entidades de la SPI';



CREATE TABLE Telefono_own_EmpresaInspeccion (
  id bigint(20) unsigned  NOT NULL auto_increment,
  empresaInspeccion char(50) NOT NULL,
  PRIMARY KEY  (id),
  FOREIGN KEY  (id) REFERENCES Telefono(id)
                                            ON DELETE CASCADE
                                            ON UPDATE CASCADE,

  INDEX  idxEmpresaInspeccion (empresaInspeccion) ,
  FOREIGN KEY  (empresaInspeccion) REFERENCES empresaInspeccion(nombre)
                                   ON DELETE CASCADE
                                   ON UPDATE CASCADE,
) TYPE=InnoDB COMMENT='Asocia telefonos a EmpresaInspeccion';



\---CREATE TABLE ---

Última edición por orfeo fecha: 04-02-2004 a las 04:27:14.
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


La franja horaria es GMT +2. Ahora son las 22:52:00.


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