Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-12-2011
David Adan David Adan is offline
Registrado
NULL
 
Registrado: jun 2011
Posts: 3
Poder: 0
David Adan Va por buen camino
Insertar Campos de dos tablas pk, fk

Buenas..............!!!a todos los del Club delphi quisiera por favor si alguien pudiera ayudarme tengo un problema con la insersion de unos campos, quiero insertar campos a la tabla persona mediante la tabla "cliente_empre" utilizando el siguiente codigo quisiera saber como hago.......?¿¿?

Adoquery1.Sql.Clear;
Adoquery1.Sql.Add('Insert into persona(nit, fax) values (');
Adoquery1.Sql.Add(QuotedStr(Edit1.Text) +','+ QuotedStr(Edit2.Text)+')');
Adoquery1.ExecSql;

óóó utilisando............................

Adoquery.InsertRecord([nit, fax]);


Las tablas son...
/////////////////////////////////////////////////////////////////////////////
CREATE TABLE `cliente_empre` (
`codcliente_empre` int(11) NOT NULL auto_increment,
`nit` char(25) default NULL,
`fax` char(25) default NULL,
`codpersona` int(11) NOT NULL,
PRIMARY KEY (`codcliente_empre`),
KEY `codpersona` (`codpersona`)
) ENGINE=MyISAM AUTO_INCREMENT=80015 DEFAULT CHARSET=ascii;
/////////////////////////////////////////////////////////////////////////////////

CREATE TABLE `persona` (
`codpersona` int(11) NOT NULL auto_increment,
`nombre` char(25) default NULL,
`app` char(25) default NULL,
`apm` char(25) default NULL,
`ci` varchar(30) default NULL,
PRIMARY KEY (`codpersona`)
) ENGINE=MyISAM AUTO_INCREMENT=200004 DEFAULT CHARSET=ascii;
/////////////////////////////////////////////////////////////////////////////////
o si pudieran facilitarme otra guia les quedare muy agradecido de ante mano...............!!!
Responder Con Cita
  #2  
Antiguo 09-12-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola David y bienvenido a Club Delphi

Como es costumbre con los recién llegados, te invito a que leas nuestra guía de estilo.

Siempre es aconsejable utilizar parámetros para enviar valores a una sentencia SQL, para evitar la Inyección SQL.

Código Delphi [-]
  with ADOQuery1 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('INSERT INTO PERSONA(NIT, FAX)');
    SQL.Add('VALUES(:NIT, :FAX)');
    Parameters.ParamByName('NIT').Value:= Edit1.Text;
    Parameters.ParamByName('FAX').Value:= Edit2.Text;
    ExecSQL;
  end;

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 09-12-2011
David Adan David Adan is offline
Registrado
NULL
 
Registrado: jun 2011
Posts: 3
Poder: 0
David Adan Va por buen camino
gracias por la pronta respuesta................!!!
pero mi pregunta era de si yo puedo meter datos
a los campos de la otra tabla por decir
tengo un

from de Cliente_empre

tengo campos nit, fax,(nombre, app, apm, ci) y mediante fk codpersona
si puedo tambien introducir o incertar datos al los campos de la tabla persona
en los campos nombre,app,apm,ci como puedo hacer este procedimiento si esque hay
alguna forma......?¿?¿
Código SQL [-]
Close;
    SQL.Clear;
    SQL.Add('INSERT INTO PERSONA(NIT, FAX)');
    SQL.Add('VALUES(:NIT, :FAX)');
    Parameters.ParamByName('NIT').Value:= Edit1.Text;
    Parameters.ParamByName('FAX').Value:= Edit2.Text;
    ExecSQL;

a este codigo añadir los campos de la otra tabla que serian

nombre,
app,
apm,
ci.

y el nombre de la tabla si fuese necesario por favor de antemano muchas grasias..............!!!
Responder Con Cita
  #4  
Antiguo 09-12-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola David.

Lo siento, no logro entenderte bién. Si lo que buscas es agregarle uno o más campos a la tabla persona mediante la declaración
Código SQL [-]
INSERT INTO ...
la respuesta es no.

Es decir si en la creación de la tabla no tenes declarados en la tabla persona los campos NIT y FAX no los podés agregar de ese modo. Sí podrías hacerlo, por ejemplo, mediante una sentencia del tipo:
Código SQL [-]
ALTER TABLE PERSONA ADD NIT CHAR(25)...
Pero como te dije antes no logro captar la idea de lo que deseas hacer...

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 09-12-2011
David Adan David Adan is offline
Registrado
NULL
 
Registrado: jun 2011
Posts: 3
Poder: 0
David Adan Va por buen camino
si hago esta pregunta es porque lo hice con manejo de interfas como yo lo digo utilizando

Código SQL [-]
ADOQUERY, DBNavigator, DataSource 
   DataSource=DataSet=(AdoQuery)
   DBNavigator=DataSourse=(DataSourse1)
   ADOQUERY=Connetion(ponemos la base de datos a conectar)=SQL(ponemos la consulta)
Con los datos mencionados anteriormente insertaba a las dos tablas(cliente_empre, persona)
Ahora mediante código a lo que me respondió pero con la tabla client_pempre añadir los siguientes campos o como puedo hacer
Código SQL [-]
Close;   
    SQL.Clear;
       SQL.Add('INSERT INTO CLIENTE_EMPRE INTO PERSONA (nit, fax, nombre, app,apm,ci)');
       SQL.Add('VALUES(:NIT, :nit, :nombre, :app, am, :ci )');
       Parameters.ParamByName('nit').Value:= Edit1.Text;
       Parameters.ParamByName('fax').Value:= Edit2.Text;
       Parameters.ParamByName('nombre').Value:= Edit3.Text;
       Parameters.ParamByName('app').Value:= Edit4.Text;
       Parameters.ParamByName('apm').Value:= Edit5.Text;
       Parameters.ParamByName('ci').Value:= Edit6.Text;
       ExecSQL;
El problema que estos campos son de dos tablas y quiero insertarlos, las dos líneas de insert y values ahí se encuentra el problema sale error de sintaxis.
Como les decía anteriormente tengo un formulario donde saco los campos de client_empre y también saco los campos de persona y quiero insertar nuevos datos o datos nuevos a estos registros como hago grasias de antemano
Responder Con Cita
  #6  
Antiguo 09-12-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
Los inserts son por cada tabla
no puedes hacer un insert unico para insertar datos en 2 tablas

lo que tendria que hace es 2 insert.. uno para cada uno
__________________
Dulce Regalo que Satanas manda para mi.....
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
Insertar en Campos tipo Blob GustavoCruz SQL 1 28-06-2011 19:49:15
insertar campos autonumericos wopc Firebird e Interbase 6 30-03-2007 12:03:24
insertar en tablas pattyka Conexión con bases de datos 2 14-11-2006 12:18:25
Insertar campos en un tabla SQL SERVER jose arriagada SQL 1 18-03-2004 01:09:48
insertar en dos tablas Eolo Firebird e Interbase 3 20-08-2003 18:22:50


La franja horaria es GMT +2. Ahora son las 06:50:21.


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