DBPEXECSQL - Forum

Forum Navigation
You need to log in to create posts and topics.

DBPEXECSQL

Page 1 of 2Next

 

Hola @rasl tengo una pequeña base de datos y uso el comando DBPEXECSQL para agregarle registros me funciona perfecto
ejemplo:

Setvar "[titular]" "roxana"
Setvar "[telefono]" "2563333"

DBPEXECSQL "prueba" "INSERT INTO datos (Titular,Telefono) VALUES ('[titular]',[Telefono])" ""

El problema es que no puedo dar y acertar para poder modificar y eliminar utilizando DBPEXECSQL aplicandolo
a la base y tabla del ejemplo...

Como seria la instruccion del comando para modificar
como seria la instruccion del comando para eliminar el registro

Desde ya mil gracias si me pueden dar una manito.

(el campo titular es string y el campo telefono es integer)

ENGLISH

Hello, I have a small database and I use the command to add records to it, it works perfectly for me.
example:

Setvar "[titular]" "roxana"
Setvar "[telefono]" "2563333"

DBPEXECSQL "test" "INSERT INTO data (titular,telefono) VALUES ('[titular]',[telefono])" ""

* (titular = string)
* <telefono = integer)

The problem is that I can't get it right to be able to modify and delete using DBPEXECSQL applying it
to the base and table of the example...

What would the command instruction be like to modify?
What would the command instruction be like to delete the record?

Thank you very much in advance if you can give me a hand.

Hola: las instrucciones son

Para cambiar:

DBPEXECSQL "test" "Update data set titular='[titular1]' where telefono=[telefono]" ""

o

DBPEXECSQL "test" "Update data set telefono=[telefono] where titular='[titular]'" ""

Para eliminar:

DBPEXECSQL "test" "Delete from data where titular='[titular]'" ""

o

DBPEXECSQL "test" "Delete from data where telefono=[telefono]" ""

0

DBPEXECSQL "test" "Delete from data where titular='[titular]' AND telefono=[telefono]" ""

o

DBPEXECSQL "test" "Delete from data where titular='[titular]' OR telefono=[telefono]" ""

espero te sirva

salu2

 

luishp has reacted to this post.
luishp

@joferar333 Para modificar y eliminar registros de tu base de datos utilizando DBPEXECSQL, deberás seguir la sintaxis SQL apropiada para las operaciones de actualización (UPDATE) y eliminación (DELETE). Así serían las instrucciones para cada caso basándonos en tu ejemplo:

Para modificar un registro existente

Si deseas modificar un registro existente, por ejemplo, actualizar el número de teléfono de "roxana", utilizarías la instrucción UPDATE. Supongamos que queremos cambiar el número de teléfono a "9999999":

Setvar "[titular]" "roxana"
Setvar "[telefono]" "9999999"

DBPEXECSQL "prueba" "UPDATE data SET Telefono = [telefono] WHERE Titular = '[titular]'" ""

En este caso, [telefono] debería ser sustituido por el nuevo número de teléfono y [titular] por el nombre del titular cuyo registro queremos modificar. Es importante notar que el valor de Telefono no lleva comillas en la consulta, ya que has mencionado que es un entero.

Para eliminar un registro

Si deseas eliminar un registro, utilizarías la instrucción DELETE. Por ejemplo, para eliminar el registro correspondiente a "roxana":

Setvar "[titular]" "roxana"

DBPEXECSQL "prueba" "DELETE FROM data WHERE Titular = '[titular]'" ""

Aquí, [titular] sería sustituido por el nombre del titular cuyo registro queremos eliminar.

Notas importantes

  • Asegúrate de que los nombres de las variables ([titular], [telefono]) y de la base de datos/tabla (prueba, datos) sean correctos y correspondan a los que estás utilizando en tu sistema.
  • Ten cuidado al usar la instrucción DELETE, ya que eliminará permanentemente los registros que coincidan con la condición especificada. Siempre es una buena práctica hacer una copia de seguridad de tus datos antes de realizar operaciones que modifiquen o eliminen datos.
  • En los ejemplos anteriores, se asume que titular es una cadena de texto y por eso va entre comillas simples en las condiciones WHERE. Por otro lado, Telefono, siendo un entero, no lleva comillas en la instrucción UPDATE.
Vadim has reacted to this post.
Vadim

Mil gracias @luishp,@rasl

@rasl

Te hago una ultima consulta sobre este comando, siguiendo la estructura de la base de datos he sumado un campo para almacenar una foto, como seria la forma correcta de poder insertar esa foto utilizando el comando DBPEXECSQL

 

Setvar "[titular]" "roxana"
Setvar "[telefono]" "2563333"
Setvar "[foto]" "c:\documentos\imagen\foto1.jpg"

DBPEXECSQL "test" "INSERT INTO data (titular,telefono, foto) VALUES ('[titular]',[telefono])" ""

No me doy cuenta si en values la variable foto debe ir entre comillas o sin comillas?

Mil Mil gracias desde ya

Hola, siempre lo que es string va entre comillas simples, lo que es numero no lo lleva, en este caso vos vas a almacenar el camino hasta la foto no la foto misma, no es conveniente alojar fotos en base de datos, ademas el campo en ese caso no seria string sino varbinary u otro adecuado para guardar archivos binarios

DBPEXECSQL "test" "INSERT INTO data (titular,telefono, foto) VALUES ('[titular]',[telefono],'[foto]')" ""

salu2

luishp has reacted to this post.
luishp

@rasl

A eso no lo tenia en cuenta y como se puede alojar la foto directamente en la base  como seria el comando?

Mil gracias por tu paciencia y tu tiempo

 

 

 

a

Esto es un poco complejo y requerira que consultes pero bueno ahi va

VARBINARY(MAX): Es el tipo de campo más utilizado para almacenar imágenes en SQL Server por lo tanto la columna foto debera tener ese tipo

dicho eso asi deberia ser el comando para cargar las fotos

DBPEXECSQL "test" "DECLARE @Imagen VARBINARY(MAX)
SET @Imagen = (SELECT BulkColumn FROM OPENROWSET(BULK N'C:\ruta\imagen.jpg', SINGLE_BLOB) AS Imagen)
INSERT INTO data (titular,telefono, foto) VALUES ('[titular]',[telefono],@Imagen)" ""

 

salu2

Para trabajar con imagenes te conviene modificar los datos de la forma convencional, osea, usando las variables que corresponden a la tabla abierta, ejemplo

Suponiendo que la tabla tiene 3 campos, ID, NOMBRE, IMAGEN. Y este ultimo "IMAGEN" es de tipo Blob

De la siguiente forma podes almacenar una imagen

dbpopentable "MyDB" "MyTabla" ""

dbpaddrecord "MyDB" "MyTabla"

setvar "[MyDB.MyTabla.NOMBRE]" "PRUEBA"
setvar "[MyDB.MyTabla.IMAGEN]" "C:\\carpeta de la imagen\imagen.jpg"

dbpsaveedits "MyDB" "MyTabla"

 

 

Hola @rasl, te vuelvo a molestar porque la verdad no puedo comprender donde esta el error y tu la tienes muy  clara con el uso de este comando...
veras intento insertar un registro en la base de datos asi

dbpExecSQL "gestion" "INSERT INTO usuarios (planilla,titular,montoprestado,totalcuotas,valorcuotas,totalretorno,aprobado,iniciapagos,terminapagos,tiporetorno,estado,direccion,documento,telefono,razonsocial,nota) VALUES ([planilla],'[titular]',[montoprestado],[numberOfDays],[valorcuota],[totalretorno],'![startDateStr2]','![iniciapagos]','![endDate2]','[tiporetorno]','Activo','[direccion]',[documento],[telefono],'[razonsocial]','[nota]')" ""

todos los campos estan chequeados y la entrada de los campos esta correcta en su formato, de hecho cuando ejecuto pasa sin error pero curiosamente no me lo
agrega, No da ningun error pero no lo agrega.

el mismo comando en la inserccion de un registro en otra base de datos si lo hace perfecto...

este lo agrega...

dbpExecSQL "tipocredito" "INSERT INTO Semanal (Planilla,Cliente,Pago,NoPago) VALUES ([planilla],'[titular]','','')" ""

alguna idea por donde pueste estar el error....

(cuando yo veo el debuger en el momento de la ejecucion si bien no me da ningun error pero el comando no me muestra todo el script solo me da parcial ...
que podra ser (o es demasiado largo el comando y queda mal formateado???

desde ya gracias

 

 

 

@luis  hola luis, te tengo que molestar porque necesito poder entender si el plug esta teniendo un mal funcionamiento o soy yo quien esta utilizando mal las instrucciones....

Cuando utilizo el comando dbpExecSQL  me funciona perfectamente pero si los campos de la base de datos son mas numerosos, se ejecuta No da error

pero no lo ingresa a la base...

por ejemplo este funciona perfecto y lo agrega

dbpExecSQL "tipocredito" "INSERT INTO Semanal (Planilla,Cliente,Pago,NoPago) VALUES ([planilla],'[titular]','','')" ""

(planilla es numerico y titular string)

Pero este no lo agrega

dbpExecSQL "gestion" "INSERT INTO usuarios (planilla,titular,montoprestado,totalcuotas,valorcuotas,totalretorno,aprobado,iniciapagos,terminapagos,tiporetorno,estado,direccion,documento,telefono,razonsocial,nota) VALUES ([planilla],'[titular]',[montoprestado],[numberOfDays],[valorcuota],[totalretorno],'![startDateStr2]','![iniciapagos]','![endDate2]','[tiporetorno]','Activo','[direccion]',[documento],[telefono],'[razonsocial]','[nota]')" ""

Planilla (numerico) titular (string)montoprestado (numerico) numberofdays (numerico valorcuota (numerico) totalretorno (numerico) startDateStr2 y iniciapagos (fecha) tiporetorno(string)estado( string) direccion(string) documento (numerico) telefono (numerico) razonsocial (string) nota (memo)

A lo mejor al ingresar en el cuadro de comando de las instrucciones sql debe ingresarse en forma separada, la verdad no lo se por eso te pido si me puedes comentar al respecto

Desde ya mil gracias

 

 

@luishp  hola luis, te tengo que molestar porque necesito poder entender si el plug esta teniendo un mal funcionamiento o soy yo quien esta utilizando mal las instrucciones....

Cuando utilizo el comando dbpExecSQL  me funciona perfectamente pero si los campos de la base de datos son mas numerosos, se ejecuta No da error

pero no lo ingresa a la base...

por ejemplo este funciona perfecto y lo agrega

dbpExecSQL "tipocredito" "INSERT INTO Semanal (Planilla,Cliente,Pago,NoPago) VALUES ([planilla],'[titular]','','')" ""

(planilla es numerico y titular string)

Pero este no lo agrega

dbpExecSQL "gestion" "INSERT INTO usuarios (planilla,titular,montoprestado,totalcuotas,valorcuotas,totalretorno,aprobado,iniciapagos,terminapagos,tiporetorno,estado,direccion,documento,telefono,razonsocial,nota) VALUES ([planilla],'[titular]',[montoprestado],[numberOfDays],[valorcuota],[totalretorno],'![startDateStr2]','![iniciapagos]','![endDate2]','[tiporetorno]','Activo','[direccion]',[documento],[telefono],'[razonsocial]','[nota]')" ""

Planilla (numerico) titular (string)montoprestado (numerico) numberofdays (numerico valorcuota (numerico) totalretorno (numerico) startDateStr2 y iniciapagos (fecha) tiporetorno(string)estado( string) direccion(string) documento (numerico) telefono (numerico) razonsocial (string) nota (memo)

A lo mejor al ingresar en el cuadro de comando de las instrucciones sql debe ingresarse en forma separada, la verdad no lo se por eso te pido si me puedes comentar al respecto

Desde ya mil gracias

Te aconsejo que antes de ejecutar la consulta hagas que tu programa copie al clipboard o la papelera toda la instrucción, visualneo va a remplazar las variables por los datos listos:

setvar "[clipboard]" "INSERT INTO usuarios (planilla,titular,montoprestado,totalcuotas,valorcuotas,totalretorno,aprobado,iniciapagos,terminapagos,tiporetorno,estado,direccion,documento,telefono,razonsocial,nota) VALUES ([planilla],'[titular]',[montoprestado],[numberOfDays],[valorcuota],[totalretorno],'![startDateStr2]','![iniciapagos]','![endDate2]','[tiporetorno]','Activo','[direccion]',[documento],[telefono],'[razonsocial]','[nota]')"

Despues pega la sentencia SQL en el Workbench y vas a poder ver cual es el error que esta teniendo porque puede ser cualquier cosa

@alangonzalez91, @luishp   gracias por tu respuesta pero el programa que me indicas para pegar la sentencia es Mysql y yo estoy usando una base de neobook dbpro

por otro lado si bien descargue ese programa al abrirlo me senti mas perdido que perro en cancha de boccha no tengo idea de como conectar la base y donde debo pegar la sentencia.

Yo creo que el problema esta en el plug.. pero aun no he recibido el comentario de Luis porque lo curioso es que la sentencia esta correcta no da error pero no agrega el registro a la base por otro lado hago lo mismo pero con menos campos y si lo agrega....

Una vez mas gracias

@joferar333 @roxana6218 primero de todo ¿eres la misma persona utilizando dos perfiles diferentes en el foro?

Te recomiendo que aisles el problema empezando por una SQL con un solo campo y añadiendo un campo cada vez hasta que localices cual es el que está causando el error. Es imposible poder saber que es lo que está sucediendo en tu aplicación con la información de que disponemos.

Un saludo.

alangonzalez91 has reacted to this post.
alangonzalez91

@roxana6218

hola, regreso mañana de mis vacaciones, apenas llego me fijo que ocurre y escribo

salu2

@roxana6218

como primera medida el campo aprobado no se que formato tiene pero si puedo decirte que no le estas declarando un valor en VALUES, eso ya es un error fatal

ademas estas poniendo las fechas con !, ('![startDateStr2]','![iniciapagos]'),  eso no va ya que el campo esta esperando ese formato de fecha que trae la variable o sea debe ser '[startDateStr2]','[iniciapagos]',

 

fijate con esos cambios si te anda, sino me avisas aqui

salu2

 

Estimado @rasl una vez mas confirmo que sos un capo con este comando.... si tienes razon el formato de lo que indicas es fecha y usando neodbpro agregando un registro la variable toma asi para que respete la fecha... sospechaba que podia ser algo asi, lo voy a probar y te comento

Realmente inmensamente agradecido.

Quizas te preguntes porque uso este comando y no agrego el registro normal con neodebpro el problema es que cada dos por tres me agrega un registro vacio y este comando es mas directo por lo menos es lo que piendo nunca me da un registro vacio.

 

Saludos Mil gracias por tu generocidad y tiempo

 

 

 

Amigo @rasl

No hay caso no da error pero no me agrega el registro...

 

SetVar "[planilla]""[planilla]"
SetVar "[titular]""[titular]"
SetVar "[direccion]""[direccion]"
SetVar "[documento]""[documento]"
SetVar "[telefono]""[telefono]"
SetVar "[razonsocial]" "[razonsocial]"
SetVar "[tiporetorno]""Diario"
SetVar "[montoprestado]""[montoprestado]"
SetVar "[totalcuotas]""[numberOfDays]"
SetVar "[valorcuota]""[valorcuota]"
SetVar "[totalretorno]""[totalretorno]"
Setvar "[aprobado]" "![startDateStr2]"
Setvar "[iniciapagos]" "![iniciapagos]"
setvar "[terminapagos]" "![endDate2]"
SetVar "[estado]""Activo"
SetVar "[nota]""[nota]"

dbpExecSQL "gestion" "INSERT INTO usuarios (planilla,titular,montoprestado,totalcuotas,valorcuotas,totalretorno,aprobado,iniciapagos,terminapagos,tiporetorno,estado,direccion,documento,telefono,razonsocial,nota) VALUES ([planilla],'[titular]',[montoprestado],[numberOfDays],[valorcuota],[totalretorno],'[aprobado]','[iniciapagos]','[terminapagos]','[tiporetorno]','Activo','[direccion]',[documento],[telefono],'[razonsocial]','[nota]')" ""

la verdad que no lo puedo entender donde puede estar el fallo... lo curioso es que no da error pero es como que el comando al ejecutarse se corta por lo que veo en el debuger al inspeccionar las acciones....

@roxana6218

dbpOpenTable "gestion" "usuarios" ""

SetVar "[planilla]" "1"
SetVar "[titular]" "yo"
SetVar "[direccion]" "direccion"
SetVar "[documento]" "11111111"
SetVar "[telefono]" "3333333"
SetVar "[razonsocial]" "razonsocial"
SetVar "[tiporetorno]" "Diario"
SetVar "[montoprestado]" "123.4"
SetVar "[totalcuotas]" "5"
SetVar "[valorcuota]" "30"
SetVar "[totalretorno]" "26.6"
Setvar "[aprobado]" "![DateShot]"
Setvar "[iniciapagos]" "![DateShort]"
setvar "[terminapagos]" "![DateShort]"
SetVar "[estado]" "Activo"
SetVar "[nota]" "Prueba de ingreso de datos"

dbpExecSQL "garcia" "INSERT INTO usuarios (planilla,titular,montoprestado,totalcuotas,valorcuotas,totalretorno,aprobado,iniciapagos,terminapagos,tiporetorno,estado,|direccion,documento,telefono,razonsocial,nota) VALUES ([planilla],'[titular]',[montoprestado],[totalcuotas],[valorcuota],[totalretorno],'[aprobado]','[iniciapagos]',|'[terminapagos]','[tiporetorno]','Activo','[direccion]',[documento],[telefono],'[razonsocial]','[nota]')" ""

asi como esta, inserte en una tabla que primero cree:

CREATE TABLE usuarios (planilla numeric,titular VARCHAR(100),montoprestado NUMERIC,totalcuotas INT,
valorcuotas NUMERIC,totalretorno NUMERIC,aprobado DATE,iniciapagos DATE,terminapagos DATE,tiporetorno VARCHAR(50),
estado VARCHAR(50),direccion VARCHAR(50),documento INT,telefono INT,razonsocial VARCHAR(50),nota TEXT)

proba, deberia funcionarte, si eso ocurre revisa bien que dato estas poniendo en las variables (a proposito: estas poniendo en la variable una variable no un dato SetVar "[planilla]""[planilla]") y revisa la instruccion, no deberias tener problemas

 

salu2

luishp has reacted to this post.
luishp
Page 1 of 2Next
Open chat
1
Do you need more info?
Hi, do you have any doubt?