pmtzg
11-02-2012, 21:34:56
hola amigos solocito su consejo en lo siguiente:
tengo una tabla deseo hacer un cambio por ejemplo:
hay un campo llamado cve_art
digamos que son las siguientes claves :
001
001-1
020
020-1
060
060-1
090
090-1
1000
1000-1
900000
900000-1
etc ....
los guiones que tienen estas claves representan un obsequio
pero si deseo contabilizar el total mi idea es quitarle los guiones para sumarlos todos
en pocas palabras trabajere siempre con un respaldo y deseo quitar guiones de la tabla
aqui se necesito hacer un recorrido de la tabla de principio a fin y checando que claves
tienen guion para removerselo
si se puede hacer esto con el dataset???
esto es lo que estoy haciendo y no me queda:
dm1: datamodule
fibdset: dataset fibplus
uso firebird 2.5, delphi 2007
dm1.FIBDset1.Close;
dm1.FIBDset1.Database := dm1.FIBData1;
dm1.FIBDset1.Transaction := dm1.FIBTran1;
dm1.AbreBd; // aqui abro mi base de datos
dm1.FIBDset1.SQLs.SelectSQL.Text:='Select * from '+nomtable;
dm1.FIBDset1.Open; // abro el dataset
dm1.FIBDset1.SQLs.UpdateSQL.Text:='Update '+nomtable+
' set '+
' cve_art = :cve_art';
g2.Visible :=true;
g2.MinValue :=0;
g2.MaxValue := dm1.FIBDset1.RecordCount;
label1.Caption := inttostr(dm1.FIBDset1.RecordCount);
dm1.FIBDset1.First;
while not dm1.FIBDset1.Eof do
begin
for K := 1 to dm1.FIBDset1.Fields.Count - 1 do
begin
xcve_art :=dm1.FIBDset1.FieldByName('cve_art').AsString;
if StrScan (Pansichar(xcve_art),'-') <> nil then
begin
pos := ansipos('-',xcve_art); //checa en donde esta el guion ebn numero de posicion de la cadena
xcve_art := copy(xcve_art,1, pos-1); // aqui lo corto
dm1.FIBDset1.QUpdate.Params[0].Value := xcve_art;
end;
end; {end for }
dm1.FIBDset1.QUpdate.ExecQuery;
DM1.FIBDset1.Next;
g2.Progress :=dm1.FIBDset1.RecNo;
end; {end while}
dm1.FIBTran1.Commit;
g2.Visible := false;
y no me arranca que estoy haciendo mal
gracias
tengo una tabla deseo hacer un cambio por ejemplo:
hay un campo llamado cve_art
digamos que son las siguientes claves :
001
001-1
020
020-1
060
060-1
090
090-1
1000
1000-1
900000
900000-1
etc ....
los guiones que tienen estas claves representan un obsequio
pero si deseo contabilizar el total mi idea es quitarle los guiones para sumarlos todos
en pocas palabras trabajere siempre con un respaldo y deseo quitar guiones de la tabla
aqui se necesito hacer un recorrido de la tabla de principio a fin y checando que claves
tienen guion para removerselo
si se puede hacer esto con el dataset???
esto es lo que estoy haciendo y no me queda:
dm1: datamodule
fibdset: dataset fibplus
uso firebird 2.5, delphi 2007
dm1.FIBDset1.Close;
dm1.FIBDset1.Database := dm1.FIBData1;
dm1.FIBDset1.Transaction := dm1.FIBTran1;
dm1.AbreBd; // aqui abro mi base de datos
dm1.FIBDset1.SQLs.SelectSQL.Text:='Select * from '+nomtable;
dm1.FIBDset1.Open; // abro el dataset
dm1.FIBDset1.SQLs.UpdateSQL.Text:='Update '+nomtable+
' set '+
' cve_art = :cve_art';
g2.Visible :=true;
g2.MinValue :=0;
g2.MaxValue := dm1.FIBDset1.RecordCount;
label1.Caption := inttostr(dm1.FIBDset1.RecordCount);
dm1.FIBDset1.First;
while not dm1.FIBDset1.Eof do
begin
for K := 1 to dm1.FIBDset1.Fields.Count - 1 do
begin
xcve_art :=dm1.FIBDset1.FieldByName('cve_art').AsString;
if StrScan (Pansichar(xcve_art),'-') <> nil then
begin
pos := ansipos('-',xcve_art); //checa en donde esta el guion ebn numero de posicion de la cadena
xcve_art := copy(xcve_art,1, pos-1); // aqui lo corto
dm1.FIBDset1.QUpdate.Params[0].Value := xcve_art;
end;
end; {end for }
dm1.FIBDset1.QUpdate.ExecQuery;
DM1.FIBDset1.Next;
g2.Progress :=dm1.FIBDset1.RecNo;
end; {end while}
dm1.FIBTran1.Commit;
g2.Visible := false;
y no me arranca que estoy haciendo mal
gracias