vms Postado Agosto 30, 2007 Denunciar Share Postado Agosto 30, 2007 existe uma forma de colocar os dados de uma tabela para outraex: tenho uma tabela (paradox)com os itens: Table1CODIGO | MERCADORIA | preço |001 | feijao | R$ 1,00002 | Farinha | R$ 2,00003 | Farofa | R$ 3,00usando o evento onclick de um bitbtn,os itens da Table1 seriam Adicionados na table2 Table2CODIGO | MERCADORIA | preço |tem como fazer isso? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --felipe -- Postado Agosto 30, 2007 Denunciar Share Postado Agosto 30, 2007 existe uma forma de colocar os dados de uma tabela para outraex: tenho uma tabela (paradox)com os itens: Table1CODIGO | MERCADORIA | preço |001 | feijao | R$ 1,00002 | Farinha | R$ 2,00003 | Farofa | R$ 3,00usando o evento onclick de um bitbtn,os itens da Table1 seriam Adicionados na table2 Table2CODIGO | MERCADORIA | preço |tem como fazer isso?você terá que usar o comando insert em SQLvai fikar mais ou menos assim.. (se você quiser copiar todos os dados da tabela1)a query "table1query", deve conter no SQL apenas: select * from table1 order by codigoe voce deve ter uma query auxiliarmodulo.table1query.first; s1:='insert into table2(codigo,mercadoria,preço) '; while table1query not eof do begin s:='values('+modulo.table1query.fields[0].asstring+','+modulo.table1query.fields[1].asstring+','+modulo.table1query.fields[2].asstring+')'; with modulo.auxquery do begin close; sql.clear; sql.add(s1+s); ExecSQL; end; table1query.next; end;isso deve dar..abraços! end; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 vms Postado Agosto 31, 2007 Autor Denunciar Share Postado Agosto 31, 2007 (editado) estou com duvidasver se estar certodeclarei o S1,S como string em publictable1query, isso é nome da query?auxquery, eu uso o mesmo comando?select * from table1 order by codigopublic s1,s:string { Public declarations } end; var Form1: TForm1; implementation uses UDM; {$R *.dfm} procedure TForm1.BitBtn1Click(Sender: TObject); begin modulo.table1query.first; s1:='insert into modulo.table2(codigo,mercadoria,preço) '; while modulo.table1query not eof do begin s:='values('+modulo.table1query.fields[0].asstring+','+modulo.table1query.fields[1].asstring+', '+modulo.table1query.fields[2].asstring+')'; with modulo.auxquery do begin close; sql.clear; sql.add(s1+s); ExecSQL; end; modulo.table1query.next; end; end; end.estar ocorrendo esse erro nessa linhalinha -> while modulo.table1query not eof do beginErro -> [Error]UTransf.pas(45): Missing operator or semicolon Editado Agosto 31, 2007 por Micheus Adicionado o delimitador de código [code] [/code]. Lembre-se de utilizá-lo para melhor visualização Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Agosto 31, 2007 Denunciar Share Postado Agosto 31, 2007 vms, a linha não está corretamente definida:while modulo.table1query not eof do begindeve ficar assim:while not modulo.table1query.eof do beginTambém, verifique se você não terá erro na execução da query (ao chamar ExecSQL), por conta da formatação do campo PREÇO (o tal R$). Pelo uso do modo concatenação, ao utilizar AsString, se definida a propriedade DisplayFormat com R$, a string de inserção poder ficar inválida. Por exemplo, para o primeiro registro exemplificado ficaria assim:insert into modulo.table2(codigo,mercadoria,preço) values (001, feijao, R$ 1,00)Fora o fato que o campo texto mercadoria, foi concatenado sem as aspas que denotam um valor string. Esteja atento a estas questões.Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 vms Postado Agosto 31, 2007 Autor Denunciar Share Postado Agosto 31, 2007 ok. valeu! e as outras perguntas?estou com duvidasver se estar certodeclarei o S1,S como string em publictable1query, isso é nome da query?auxquery, eu uso o mesmo comando?select * from table1 order by codigo Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Setembro 1, 2007 Denunciar Share Postado Setembro 1, 2007 ver se estar certodeclarei o S1,S como string em publicpode ser, mas não seria necessário nem elegante - você só faz uso delas naquele procedimento, então, deveria definir dentro dele:procedure TForm1.BitBtn1Click(Sender: TObject); var S, S1 :String; begin modulo.table1query.first; ... table1query, isso é nome da query?imagino que ele esta querendo dizer a voce que esta seria a query ref. a table1 auxquery, eu uso o mesmo comando? select * from table1 order by codigoacho que está claro que não. Note que ele adiciona a propriedade SQL, da auxquery, S+S1 (sql.add(s1+s);). Bom, o felipe tentou lhe passar o "espírito da coisa" não ela pronta (dá para ver que foi na intuição - tanto que apareceram alguns probleminhas). Mas já que você não captou 100%, vou exemplificar, levando em conta o que já citei no post anterior. Como voce não deu o nome das tabelas, então vou tratá-las como TABLE1 e TABLE2 procedure TForm1.BitBtn1Click(Sender: TObject); begin // preparando a querie de inserção QueryAux.SQL.Clear; QueryAux.SQL.Add('insert into TABLE2(codigo, mercadoria, preço)'); QueryAux.SQL.Add('values (:codigo, :mercadoria, :preço)'); // * observe que não tem c-cedilia (o forum é que troca o c) Table1.First; // *** Este Table1 pode ser um TTable ou TQuery - fica a sua escolha while not Table1.EOF do begin QueryAux.ParamByName('codigo').AsInteger := Table1CODIGO.AsInteger; // * se o campo não foi adicionado // em design-time, use Table1.FieldByName('codigo').AsInteger QueryAux.ParamByName('mercadoria').AsString := Table1MERCADORIA.AsString; QueryAux.ParamByName('preço').AsFloat := Table1PRECO.AsFloat; QueryAux.ExecSQL; Table1.Next; end; end;se você usa datamodule, então tem que preceder todos os dataset's (table ou query) com o nome do datamodulo (o felipe citou modulo.table1...) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 vms Postado Setembro 5, 2007 Autor Denunciar Share Postado Setembro 5, 2007 valeu micheusmas não estou conseguindo fazer o codigo da queryauxeu coloco so isso na propriedadesql.add(s1+s) Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
vms
existe uma forma de colocar os dados de uma tabela para outra
ex: tenho uma tabela (paradox)com os itens:
usando o evento onclick de um bitbtn,os itens da Table1seriam Adicionados na table2
tem como fazer isso?
Link para o comentário
Compartilhar em outros sites
6 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.