Chave primária Cliente Servidor !
Saudações pessoal,
Tenho 2 tabelas no qual o usuário irá ouvir uma escuta dai ele ira cadastrar na tabela sendo que as informações se cruzam na rede, pois o usuario ouvindo a escuta pode abrir a tabela e entrar em modo de inserção e outro o usuario ao mesmo tempo tambem ouvi uma escuta e abre a tabela e entra em modo de inserção dai haverá um duplicação de registro pois no codigo de inserçao esta codificado como autoincremento, e os dois abrindo ao mesmo tempo e nenhum salvando ira gerar um erro.
GOSTARIA QUE ALGUEM ME ORIENTASSE COMO DEVO PROCEDER, OU SE ALGUEM JA PASSOU POR ALGUM EXEMPLO ASSIM.
RESSALTO QUE ESSAS DUAS TABELAS SAO DE PESQUISA E USO BASE DE DADOS SQL SERVER 2000 COM DELPHI 6.
Grato pela ajuda !
Tenho 2 tabelas no qual o usuário irá ouvir uma escuta dai ele ira cadastrar na tabela sendo que as informações se cruzam na rede, pois o usuario ouvindo a escuta pode abrir a tabela e entrar em modo de inserção e outro o usuario ao mesmo tempo tambem ouvi uma escuta e abre a tabela e entra em modo de inserção dai haverá um duplicação de registro pois no codigo de inserçao esta codificado como autoincremento, e os dois abrindo ao mesmo tempo e nenhum salvando ira gerar um erro.
GOSTARIA QUE ALGUEM ME ORIENTASSE COMO DEVO PROCEDER, OU SE ALGUEM JA PASSOU POR ALGUM EXEMPLO ASSIM.
RESSALTO QUE ESSAS DUAS TABELAS SAO DE PESQUISA E USO BASE DE DADOS SQL SERVER 2000 COM DELPHI 6.
Grato pela ajuda !
Jonasaf
Curtidas 0
Respostas
Rodrigo Coutinho
02/10/2003
Olá amigo já passei por isso muito tempo atrás e resolvi utilizando os comando do sql mesmo com insert into, e depois disso nunca mais utilizei dbedit so edit´s. Assim a aplicação mais robusta e rapida.
[]s, Rodrigo Coutinho
[]s, Rodrigo Coutinho
GOSTEI 0
Rik3500
02/10/2003
Voce coloca uma query com o cod. sql: Select MAX(Tabela.Codigo) from Tabela
E na tabela que voce trabalho, coloque no evento AfterInsert:
Query.Close;
Query.Open;
TabelaCodigo.Value := (QueryMAX.Value + 1);
No formulário principal quando voce abrir o formulario para trabalhar digite no evento de chamada do formulário principal ou em outro que voce irá fazer uma inserção:
Tabela.Open;
Query.Open;
Tabela.Insert;
Tabela.Post;
Database.StarTransation; ( se voce utilizar uma transação )
Tabela.Edit;
Quando for confirmar o cadastro:
Tabela.Post;
Database.Comit;
Qualquer duvida meu e-mail é: rhatsugai@hotmail.com
E na tabela que voce trabalho, coloque no evento AfterInsert:
Query.Close;
Query.Open;
TabelaCodigo.Value := (QueryMAX.Value + 1);
No formulário principal quando voce abrir o formulario para trabalhar digite no evento de chamada do formulário principal ou em outro que voce irá fazer uma inserção:
Tabela.Open;
Query.Open;
Tabela.Insert;
Tabela.Post;
Database.StarTransation; ( se voce utilizar uma transação )
Tabela.Edit;
Quando for confirmar o cadastro:
Tabela.Post;
Database.Comit;
Qualquer duvida meu e-mail é: rhatsugai@hotmail.com
GOSTEI 0
Fabio.hc
02/10/2003
Saudações pessoal,
Tenho 2 tabelas no qual o usuário irá ouvir uma escuta dai ele ira cadastrar na tabela sendo que as informações se cruzam na rede, pois o usuario ouvindo a escuta pode abrir a tabela e entrar em modo de inserção e outro o usuario ao mesmo tempo tambem ouvi uma escuta e abre a tabela e entra em modo de inserção dai haverá um duplicação de registro pois no codigo de inserçao esta codificado como autoincremento, e os dois abrindo ao mesmo tempo e nenhum salvando ira gerar um erro.
O campo só é incrementado após o comando Post e não após o Insert.
GOSTEI 0
Nando
02/10/2003
Seguinte, vc pode utilizar o q o rik3500 postou porém coloque aquilo no evento BEFOREPOST assim no momento que a pessoa precionar o botão para gravar o registro o seu sistema pega o último código e incrementa ele e já salva. Com isso estará sempre atualizado.
Qualquer dúvida mande um e-mail ou MP
Qualquer dúvida mande um e-mail ou MP
GOSTEI 0