Fórum Quero criar um arquivo temporário, qual o melhor? #165991

23/06/2003

0

Criei 1º um arquivo paradox temporario, mas qdo ia salvar o registro retornava erro na chave primaria, depois tentei um arquivo texto, usando um grid, mas ele só salva o ultimo registro encluido, ja ultilizai append, mas ele não grava registro a registro, fico apenas com 1 registro no arquivo texto, não funciona como no pascal!!


Host

Host

Responder

Posts

23/06/2003

Cdaraujo

Caro amigo,

Estamos aqui para lhe ajudar na uitlização da ferramenta Delphi em seu ambiente de desenvolvimento.
Essa técnica de usar tabelas paradox como registro temporário, já é antigo. Seria legal vc estudar um pouco o componente TClientDataSet, onde este, está disponível desde da versão 5. É um recurso muito bom para que vc possa trabalhar com dados temporários.

Atenciosamente,

Daniel Araújo

Criei 1º um arquivo paradox temporario, mas qdo ia salvar o registro retornava erro na chave primaria, depois tentei um arquivo texto, usando um grid, mas ele só salva o ultimo registro encluido, ja ultilizai append, mas ele não grava registro a registro, fico apenas com 1 registro no arquivo texto, não funciona como no pascal!!



Responder

Gostei + 0

23/06/2003

Roberto_conetsys

Voce poderia detalhar mais sua necessidade, pois criar tabela temporarias com Paradox, pode ser ultrapassado, mas é bem simples.
Voce cria uma tabela com o database desktop e depois faz as copias normalmente no C:\Temp e apaga no termino vide codigo abaixo.

No evento oncreate do form:
Tbl_CriaMov.Open;
// Cria a tabela TMP.DB no Disco
TB_TMP := TTable.Create(Self);
WITH TB_TMP DO
BEGIN
DatabaseName := ´C:\Temp´;
TableName := ´MOV_TMP.DB´;
FieldDefs.Assign(Tbl_CriaMov.FieldDefs);
IndexDefs.Assign(Tbl_CriaMov.IndexDefs);
CreateTable;
END;
Tbl_Mov_Tmp.TableName := ´MOV_TMP.DB´;
Tbl_Mov_Tmp.Open;

No evento onclose do form
Tbl_Mov_Tmp.DeleteTable;

A chave primaria pode ser auto-incremental ou voce faz tratamento para incrementar.


Responder

Gostei + 0

23/06/2003

Roberto_conetsys

Voce poderia detalhar mais sua necessidade, pois criar tabela temporarias com Paradox, pode ser ultrapassado, mas é bem simples.
Voce cria uma tabela com o database desktop e depois faz as copias normalmente no C:\Temp e apaga no termino vide codigo abaixo.

No evento oncreate do form:
Tbl_CriaMov.Open;
// Cria a tabela TMP.DB no Disco
TB_TMP := TTable.Create(Self);
WITH TB_TMP DO
BEGIN
DatabaseName := ´C:\Temp´;
TableName := ´MOV_TMP.DB´;
FieldDefs.Assign(Tbl_CriaMov.FieldDefs);
IndexDefs.Assign(Tbl_CriaMov.IndexDefs);
CreateTable;
END;
Tbl_Mov_Tmp.TableName := ´MOV_TMP.DB´;
Tbl_Mov_Tmp.Open;

No evento onclose do form
Tbl_Mov_Tmp.DeleteTable;

A chave primaria pode ser auto-incremental ou voce faz tratamento para incrementar.


Responder

Gostei + 0

23/06/2003

Roberto_conetsys

Voce poderia detalhar mais sua necessidade, pois criar tabela temporarias com Paradox, pode ser ultrapassado, mas é bem simples.
Voce cria uma tabela com o database desktop e depois faz as copias normalmente no C:\Temp e apaga no termino vide codigo abaixo.

No evento oncreate do form:
Tbl_CriaMov.Open;
// Cria a tabela TMP.DB no Disco
TB_TMP := TTable.Create(Self);
WITH TB_TMP DO
BEGIN
DatabaseName := ´C:\Temp´;
TableName := ´MOV_TMP.DB´;
FieldDefs.Assign(Tbl_CriaMov.FieldDefs);
IndexDefs.Assign(Tbl_CriaMov.IndexDefs);
CreateTable;
END;
Tbl_Mov_Tmp.TableName := ´MOV_TMP.DB´;
Tbl_Mov_Tmp.Open;

No evento onclose do form
Tbl_Mov_Tmp.DeleteTable;

A chave primaria pode ser auto-incremental ou voce faz tratamento para incrementar.


Responder

Gostei + 0

23/06/2003

Roberto_conetsys

Voce poderia detalhar mais sua necessidade, pois criar tabela temporarias com Paradox, pode ser ultrapassado, mas é bem simples.
Voce cria uma tabela com o database desktop e depois faz as copias normalmente no C:\Temp e apaga no termino vide codigo abaixo.

No evento oncreate do form:
Tbl_CriaMov.Open;
// Cria a tabela TMP.DB no Disco
TB_TMP := TTable.Create(Self);
WITH TB_TMP DO
BEGIN
DatabaseName := ´C:\Temp´;
TableName := ´MOV_TMP.DB´;
FieldDefs.Assign(Tbl_CriaMov.FieldDefs);
IndexDefs.Assign(Tbl_CriaMov.IndexDefs);
CreateTable;
END;
Tbl_Mov_Tmp.TableName := ´MOV_TMP.DB´;
Tbl_Mov_Tmp.Open;

No evento onclose do form
Tbl_Mov_Tmp.DeleteTable;

A chave primaria pode ser auto-incremental ou voce faz tratamento para incrementar.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar