fiz um programinha para alterar logins que estão repetidos da tabela
de usuários. Porém o mesmo apresenta dois problemas... é preciso
executá-lo 2x, e ele trava legal os recursos da máquina...
O pessoal do trampo só fala que Delphi nao presta por isso.. e
programam em VB e C++.. vou passar a rotina que eu fiz.. e se tiverem
algo para que eu possa implementar ficarei muito agradecido...
ps.: Estou usando MySql
string da query:
select id,login,dup from usuarios where not isnull(login) order by login
//funcção para eliminar os acentos
function CorrigeTxt(texto: string): string;
var controle1,texto2,L1,L2:string;
posi,ver:integer;
begin
controle1:='aâãäáàeêéèëiïîíìoôóòöuùúüûç';
texto2:='';
posi:=1;
while posi<=length(texto) do
begin
L1:=Copy(texto,posi,1);
ver:=pos(L1,controle1);
begin
if ver=0 then L2:=L1
else
if ver<7 then L2:='a'
else
if ver<12 then L2:='e'
else
if ver<17 then L2:='i'
else
if ver<22 then L2:='o'
else
if ver<27 then L2:='u'
else
L2:='c';
end;
texto2:=texto2+L2;
posi:=posi+1;
end;
CorrigeTxt:=texto2;
end;
procedure TForm1.SpeedButtonCorrige(Sender: TObject);
var contador,cont:integer;
login:String;
begin
contador:=0;
cont:=0;
if not query1.Active then query1.open;
query1.First;
login:=query1login.asString;
query1.next;
while not query1.Eof do
begin
label2.Caption:=TimeToStr(Time-hora);
if
UpperCase(CorrigeTxt(query1login.asString))=UpperCase(CorrigeTxt(login))
then
begin
while
UpperCase(CorrigeTxt(query1login.asString))=UpperCase(CorrigeTxt(login))
do
begin
query1.Edit;
query1login.asString:=query1login.asString+IntToStr(cont+1);
query1dup.asString:='S';
query1.ApplyUpdates;
query1.CommitUpdates;
query1.close;
query1.Open;
contador:=contador+1;
query1.next;
cont:=cont+1;
end;
login:=query1login.asString;
cont:=0;
query1.next;
end //fim login igual
else
begin
login:=query1login.asString;
query1.next;
cont:=0;
end; //fim else
end; //fim da tabela
MessageDlg('Ocorreram
'+intToStr(contador)+'alterações!',mtInformation,[mbOk],0);
end;
--
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages
Para falar com o moderador, envie um e-mail para:
[EMAIL PROTECTED] ou [EMAIL PROTECTED]
Links do Yahoo! Grupos
<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/
<*> Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]
<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html