Pregunta utilizar update delphi

Tengo una tabla con un campo '1-1324' el cual quiero actualizar todos los registros que se modifiquen y que queden de la siguiente manera '1324' con esta instrucción seria para tener acceso solo a los últimos números que son los que me interesan para actualizar el campo
c_unico='1-1324'
clienteekt='1324'
Copy(Cadena,LastDelimiter('-',cadena)+1,length(cadena))
la siguiente sintaxis intruccion  me funciona bien
query1.Close;
  Query1.SQL.Clear;
  Query1.SQL.Add ('Update b_ClientesEkt');
  Query1.SQL.Add ('Set ClienteEkt=:Cliente');
  Query1.ParamByName('cliente').DataType := ftString;
  Query1.ParamByName('cliente').AsString := '1';
  Query1.RequestLive := true;
  query1.open;
Pero modifica solo con un valor determinado
lo que deseo es que se modifique en tiempo de ejecución es decir que haga la conversión
es decir en el mismo update es decir tengo el campo c_unico el cual tiene valor como el siguiente 1-324, el segundo registro el campo es 1-325 lo que deseo es darle un update osea que actualize todos los registros de la tabla el campo C_unico pero quitándole el "1-" es decir que quede "324" o si no se puede con update me den otra opción que relice esto
trate de insertar la siguiente instrucción pero no funciono
  Params.ByName( 'cliente' ).AsString :=Copy(Params.ByName( 'c_unico' ).AsString,LastDelimiter('-',Params.ByName( 'c_unico' ).AsString)+1,length(Params.ByName( 'c_unico' ).AsString))

1 Respuesta

Respuesta
StringReplace function
Returns a string with occurrences of one substring replaced by another substring.
Unit
SysUtils
Category
string handling routines
type
TReplaceFlags = set of (rfReplaceAll, rfIgnoreCase);
function StringReplace(const S, OldPattern, NewPattern: string; Flags: TReplaceFlags): string;
Description
StringReplace replaces occurrences of the substring specified by OldPattern with the substring specified by NewPattern. StringReplace assumes that the source string, specified by S, may contain Multibyte characters.
If the Flags parameter does not include rfReplaceAll, StringReplace only replaces the first occurrence of OldPattern in S. Otherwise, all instances of OldPattern are replaced by NewPattern.
If the Flags parameter includes rfIgnoreCase, The comparison operation is case insensitive.
Espero que esto te sirva de ayuda, si tienesproblemas con el ingles no dudesen preguntar
Mira el problema no son las fusiones, las funciones las conozco perfectamente lo que quieres es utilizar el UPDATE utilizando el SQL de delphi
Quiero las instrucción UPDATE de sql que en una misma linea me haga la actualización no mediante funciones de String
Quiero programación en SQL de delphi
¿Y por que no haces un procedimiento almacenado que te actualize la base de datos?
No logro comprender, es un poco difícil entender tu pregunta, sobre todo por el uso excesivo de las palabras "es decir" je je
Bueno al grano...
No deseas funciones, dices que las manejas bien, ¿qué lo que quieresesmodificar la base de datos?
Por que si actualizas el update, cmabiaras el contenido de la base de datos, y podrías perder lo que son los cmapos llaves o interrelaciones...
Tu dices que haces perfectamente en tu código la actualización... entonces no entiendo por que si ya lo realizas en SQL y no quieres funciones delfhi... ¿cuál es el problema?
¿Meterlo en un ciclo que recorrar todos los campos?
Recuerda que en SQL los ciclos no tienen necesidad de declarse... por ejemplo
update dbo.Persona set Nombre='wes'
Pero acá modificaría la base de datos, la tabla persona, la totalidad de nombres...
No estoy completamente seguro que ocupes que los valores en tu base de datos sean modificados...
Lo que necesito es utilizar la instrucción update
para que me agarre las ultimas letras de un campo por ejemplo
campo1:='1-660-1322' y actualice el campo 2 con ese resultado
campo2:='1322'
solo quiero utilizar el update pero no se si acepta funciones de cadena
SUBSTRING ( expression, start, length )
para tu ejemplo seria  '1-660-1322'
Update dbo.Tabla set Campo2= SUBSTRING ( Campo1, 7, 4 )
Disculpa el enredo, pero como la pregunta hacia referencia a Delphi me fui por ese lado inicialmente...
Me podrías poner las instrucciones en delphi que es donde no puedo ya que me marca error al tratar de correrlo
La verdad no lo recuerdo muy bien por medio de query... pero viendo tu codigoseria algo así...
Query1.SQL.Add ('Update dbo.Tabla set Campo2= SUBSTRING ( Campo1, 7, 4 )');
Te recomiendo de sobre manera la página del CLUBDELPHI www.clubdelphi.com
Allí existen expertos en delphi y están conectados casi 24 horas al día, en cualquier momento pones tu pregunta y te responden sumamente rapido, aparte de que tienen manuales y ejemplos de aplicaciones con código...
La página es gratuita no se cobra nada...
Te la recomiendo de verdad...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas