Jump to content
Fórum Script Brasil
  • 0

Duvida Com Tabelas


vms

Question

existe uma forma de colocar os dados de uma tabela para outra

ex: tenho uma tabela (paradox)com os itens:

Table1

CODIGO | MERCADORIA | preço |

001 | feijao | R$ 1,00

002 | Farinha | R$ 2,00

003 | Farofa | R$ 3,00

usando o evento onclick de um bitbtn,os itens da Table1

seriam Adicionados na table2

Table2

CODIGO | MERCADORIA | preço |

tem como fazer isso?

Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0
Guest --felipe --
existe uma forma de colocar os dados de uma tabela para outra

ex: tenho uma tabela (paradox)com os itens:

Table1

CODIGO | MERCADORIA | preço |

001 | feijao | R$ 1,00

002 | Farinha | R$ 2,00

003 | Farofa | R$ 3,00

usando o evento onclick de um bitbtn,os itens da Table1

seriam Adicionados na table2

Table2

CODIGO | MERCADORIA | preço |

tem como fazer isso?

você terá que usar o comando insert em SQL

vai 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 codigo

e voce deve ter uma query auxiliar

modulo.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;

Link to comment
Share on other sites

  • 0

estou com duvidas

ver se estar certo

declarei o S1,S como string em public

table1query, isso é nome da query?

auxquery, eu uso o mesmo comando?

select * from table1 order by codigo

public
   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 linha

linha -> while modulo.table1query not eof do begin

Erro -> [Error]UTransf.pas(45): Missing operator or semicolon

Edited by Micheus
Adicionado o delimitador de código [code] [/code]. Lembre-se de utilizá-lo para melhor visualização
Link to comment
Share on other sites

  • 0

vms, a linha não está corretamente definida:

while modulo.table1query not eof do begin

deve ficar assim:

while not modulo.table1query.eof do begin

També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

Link to comment
Share on other sites

  • 0

ok. valeu! e as outras perguntas?

estou com duvidas

ver se estar certo

declarei o S1,S como string em public

table1query, isso é nome da query?

auxquery, eu uso o mesmo comando?

select * from table1 order by codigo

Link to comment
Share on other sites

  • 0
ver se estar certo

declarei o S1,S como string em public

pode 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 codigo
acho 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...)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152k
    • Total Posts
      651.7k
×
×
  • Create New...