Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus-es / 2013-03

about sqlite3 from hfiandor 10 mar 2013

8 messages · 4 people ·

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Carlos Enrique Rodriguez
to Héctor F. Fiandor Rosario: Estimados colegas: estoy haciendo una aplicacion con sqlite3 y tengo un problema para…

"H�ctor F. Fiandor Rosario" <hfiandor en infomed.sld.cu> escribi�

Show quoted text 11 lines
al realizar la consulta, selecciono los campos de la tabla1 que quiero incluir mediante SELECT .... FROM... continuo con la clausula WHERE campo tal = index1 y aqui es donde se marea el asunto: me dice que "index1" no es una columna. Para probarlo, en vez de escribir WHERE campo tal = index1 escribo WHERE campo tal = ' 01' y trabaja perfectamente para el consultor indicado con el identificador "01"

Pareciera que el problema est� en los dos puntos del par�metro.

Where tal = :index01

Y en el codigo pasandole el valor como query1.parambyname('index01').asstring := laVariableIndex01;

Nos vemos
Carlos
------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20130310/055a098f/attachment.html>

Reply by email

Héctor F. Fiandor Rosario

Estimados colegas:

estoy haciendo una aplicacion con sqlite3 y tengo un problema para realizar una consulta.

tengo una base de datos (tabla1) donde hay un campo para identificar a consultores (01...).

tengo un listbox donde aparecen nombres de consultores, y al pinchar uno de ellos, genero una variable "index1" que indica el identificador de consultores seleccionado (01...).

al realizar la consulta, selecciono los campos de la tabla1 que quiero incluir mediante SELECT .... FROM...

continuo con la clausula WHERE campo tal = index1

y aqui es donde se marea el asunto: me dice que "index1" no es una columna.

Para probarlo, en vez de escribir WHERE campo tal = index1 escribo WHERE campo tal = ' 01' y trabaja perfectamente para el consultor indicado con el identificador "01".

Agradeceria infinitamente que me ayuden a resolver el problema.

saludos,

Ing. H�ctor F. Fiandor Rosario
hfiandor en infomed.sld.cu

Este mensaje le ha llegado mediante el servicio de correo electronico que ofrece Infomed para respaldar el cumplimiento de las misiones del Sistem a Nacional de Salud. La persona que envia este correo asume el compromiso de usar el servicio a tales fines y cumplir con las regulaciones establecidas Infomed: http://www.sld.cu/ ------------ pr�xima parte ------------ Se ha borrado un adjunto en formato HTML... URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20130310/9be698b6/attachment.html>

Reply by email

Alfred Rivera
to Carlos Enrique Rodriguez: "H�ctor F. Fiandor Rosario" <hfiandor en infomed.sld.cu> escribi� Pareciera que el…

Con cierto riesgo de error, creo que tiene que ver con las "quotes". Creo recordar algo parecido que solucion� con QuotedStr porque no hab�a manera ni con " ni con '.

Si pruebas a poner 'SELECT....... WHERE campo=' + QuotedStr(lo que sea)

seguramente funcionar�.

El 11/03/2013 3:35, Carlos Enrique Rodriguez escribi�:

Show quoted text 47 lines
"H�ctor F. Fiandor Rosario" <hfiandor en infomed.sld.cu> escribi�: Estimados colegas: estoy haciendo una aplicacion con sqlite3 y tengo un problema para realizar una consulta. tengo una base de datos (tabla1) donde hay un campo para identificar a consultores (01...). tengo un listbox donde aparecen nombres de consultores, y al pinchar uno de ellos, genero una variable "index1" que indica el identificador de consultores seleccionado (01...). al realizar la consulta, selecciono los campos de la tabla1 que quiero incluir mediante SELECT .... FROM... continuo con la clausula WHERE campo tal = index1 y aqui es donde se marea el asunto: me dice que "index1" no es una columna. Para probarlo, en vez de escribir WHERE campo tal = index1 escribo WHERE campo tal = ' 01' y trabaja perfectamente para el consultor indicado con el identificador "01". Agradeceria infinitamente que me ayuden a resolver el problema. saludos, Ing. H�ctor F. Fiandor Rosario hfiandor en infomed.sld.cu <mailto:hfiandor en infomed.sld.cu> ------------------------------------------------------------------------ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es

------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20130311/f3e91de5/attachment.html>

Reply by email

Martin Gomez
to Héctor F. Fiandor Rosario: Estimados colegas, ya resolvi el problema (la almohada fue un buen consultor).…

Ese tipo de problemas los resuelves poniendo

TablaSQLite.SQL.Text := ''WHERE Costos_1.NoGerente = :nogte ';
TablaSQLite.Params.ParamByName('nogte').AsString := index1;

Por cierto, esto funciona con SQLdb (con cualquier base soportada, incluso SQLite) pero no con el paquete SQLiteLaz, ya que �ste no soporta par�metros.

2013/3/11 H�ctor F. Fiandor Rosario <hfiandor en infomed.sld.cu>

Show quoted text 80 lines
** Estimados colegas, ya resolvi el problema (la almohada fue un buen consultor). Simplemente escrib�: sqltext4:='WHERE Costos_1.NoGerente = "'+index1+'" '; y trabaja al kilo. muchas gracias a todos, saludos, Ing. H�ctor F. Fiandor Rosario hfiandor en infomed.sld.cu ----- Original Message ----- *From:* Carlos Enrique Rodriguez <cer en racss.com.ar> *To:* Spanish version of Lazarus List<lazarus-es en lists.lazarus.freepascal.org> *Sent:* Sunday, March 10, 2013 2:35 PM *Subject:* Re: [Lazarus-es] about sqlite3 from hfiandor 10 mar 2013 "H�ctor F. Fiandor Rosario" <hfiandor en infomed.sld.cu> escribi�: > > Estimados colegas: > > estoy haciendo una aplicacion con sqlite3 y tengo un problema para > realizar una consulta. > > tengo una base de datos (tabla1) donde hay un campo para identificar a > consultores (01...). > > tengo un listbox donde aparecen nombres de consultores, y al pinchar uno > de ellos, genero una variable "index1" que indica el identificador de > consultores seleccionado (01...). > > al realizar la consulta, selecciono los campos de la tabla1 que quiero > incluir mediante SELECT .... FROM... > > continuo con la clausula WHERE campo tal = index1 > > y aqui es donde se marea el asunto: me dice que "index1" no es una > columna. > > Para probarlo, en vez de escribir WHERE campo tal = index1 escribo WHERE > campo tal = ' 01' y trabaja perfectamente para el consultor indicado con el > identificador "01". > > Agradeceria infinitamente que me ayuden a resolver el problema. > > saludos, > > Ing. H�ctor F. Fiandor Rosario > hfiandor en infomed.sld.cu > > ------------------------------ > > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es > > ------------------------------ _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
Try not to become a man of success but rather to become a man of value. *Albert Einstein* ------------ pr�xima parte ------------ Se ha borrado un adjunto en formato HTML... URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20130311/9dbee96f/attachment.html>

Reply by email

Martin Gomez
to Martin Gomez

Aqu� est� explicado

http://wiki.freepascal.org/SqlDBHowto/es#.C2.BFC.C3.B3mo_utilizar_par.C3.A1metros_en_una_consulta.3F

2013/3/11 Martin Gomez <mmgomez en gmail.com>

Show quoted text 98 lines
Ese tipo de problemas los resuelves poniendo TablaSQLite.SQL.Text := ''WHERE Costos_1.NoGerente = :nogte '; TablaSQLite.Params.ParamByName('nogte').AsString := index1; Por cierto, esto funciona con SQLdb (con cualquier base soportada, incluso SQLite) pero no con el paquete SQLiteLaz, ya que �ste no soporta par�metros. 2013/3/11 H�ctor F. Fiandor Rosario <hfiandor en infomed.sld.cu> ** > Estimados colegas, ya resolvi el problema (la almohada fue un buen > consultor). > > Simplemente escrib�: > > sqltext4:='WHERE Costos_1.NoGerente = "'+index1+'" '; > > y trabaja al kilo. > > muchas gracias a todos, > > saludos, > > Ing. H�ctor F. Fiandor Rosario > hfiandor en infomed.sld.cu > > > ----- Original Message ----- > *From:* Carlos Enrique Rodriguez <cer en racss.com.ar> > *To:* Spanish version of Lazarus List<lazarus-es en lists.lazarus.freepascal.org> > *Sent:* Sunday, March 10, 2013 2:35 PM > *Subject:* Re: [Lazarus-es] about sqlite3 from hfiandor 10 mar 2013 > > > > "H�ctor F. Fiandor Rosario" <hfiandor en infomed.sld.cu> escribi�: >> >> Estimados colegas: >> >> estoy haciendo una aplicacion con sqlite3 y tengo un problema para >> realizar una consulta. >> >> tengo una base de datos (tabla1) donde hay un campo para identificar a >> consultores (01...). >> >> tengo un listbox donde aparecen nombres de consultores, y al pinchar uno >> de ellos, genero una variable "index1" que indica el identificador de >> consultores seleccionado (01...). >> >> al realizar la consulta, selecciono los campos de la tabla1 que quiero >> incluir mediante SELECT .... FROM... >> >> continuo con la clausula WHERE campo tal = index1 >> >> y aqui es donde se marea el asunto: me dice que "index1" no es una >> columna. >> >> Para probarlo, en vez de escribir WHERE campo tal = index1 escribo WHERE >> campo tal = ' 01' y trabaja perfectamente para el consultor indicado con el >> identificador "01". >> >> Agradeceria infinitamente que me ayuden a resolver el problema. >> >> saludos, >> >> Ing. H�ctor F. Fiandor Rosario >> hfiandor en infomed.sld.cu >> >> ------------------------------ >> >> Lazarus-es mailing list >> Lazarus-es en lists.lazarus.freepascal.org >> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es >> >> ------------------------------ > > _______________________________________________ > > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es > > > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es > > -- Try not to become a man of success but rather to become a man of value. *Albert Einstein*
Try not to become a man of success but rather to become a man of value. *Albert Einstein* ------------ pr�xima parte ------------ Se ha borrado un adjunto en formato HTML... URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20130311/c4faf0fe/attachment.html>

Reply by email

Alfred Rivera
to Martin Gomez: Ese tipo de problemas los resuelves poniendo TablaSQLite.SQL.Text := ''WHERE…

Cierto,
el uso de par�metros es bastante m�s elegante.

El 11/03/2013 13:34, Martin Gomez escribi�:

Show quoted text 110 lines
Ese tipo de problemas los resuelves poniendo TablaSQLite.SQL.Text := ''WHERE Costos_1.NoGerente = :nogte '; TablaSQLite.Params.ParamByName('nogte').AsString := index1; Por cierto, esto funciona con SQLdb (con cualquier base soportada, incluso SQLite) pero no con el paquete SQLiteLaz, ya que �ste no soporta par�metros. 2013/3/11 H�ctor F. Fiandor Rosario <hfiandor en infomed.sld.cu <mailto:hfiandor en infomed.sld.cu>> Estimados colegas, ya resolvi el problema (la almohada fue un buen consultor). Simplemente escrib�: sqltext4:='WHERE Costos_1.NoGerente = "'+index1+'" '; y trabaja al kilo. muchas gracias a todos, saludos, Ing. H�ctor F. Fiandor Rosario hfiandor en infomed.sld.cu <mailto:hfiandor en infomed.sld.cu> ----- Original Message ----- *From:* Carlos Enrique Rodriguez <mailto:cer en racss.com.ar> *To:* Spanish version of Lazarus List <mailto:lazarus-es en lists.lazarus.freepascal.org> *Sent:* Sunday, March 10, 2013 2:35 PM *Subject:* Re: [Lazarus-es] about sqlite3 from hfiandor 10 mar 2013 "H�ctor F. Fiandor Rosario" <hfiandor en infomed.sld.cu <mailto:hfiandor en infomed.sld.cu>> escribi�: Estimados colegas: estoy haciendo una aplicacion con sqlite3 y tengo un problema para realizar una consulta. tengo una base de datos (tabla1) donde hay un campo para identificar a consultores (01...). tengo un listbox donde aparecen nombres de consultores, y al pinchar uno de ellos, genero una variable "index1" que indica el identificador de consultores seleccionado (01...). al realizar la consulta, selecciono los campos de la tabla1 que quiero incluir mediante SELECT .... FROM... continuo con la clausula WHERE campo tal = index1 y aqui es donde se marea el asunto: me dice que "index1" no es una columna. Para probarlo, en vez de escribir WHERE campo tal = index1 escribo WHERE campo tal = ' 01' y trabaja perfectamente para el consultor indicado con el identificador "01". Agradeceria infinitamente que me ayuden a resolver el problema. saludos, Ing. H�ctor F. Fiandor Rosario hfiandor en infomed.sld.cu <mailto:hfiandor en infomed.sld.cu> ------------------------------------------------------------------------ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org <mailto:Lazarus-es en lists.lazarus.freepascal.org> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es ------------------------------------------------------------------------ _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org <mailto:Lazarus-es en lists.lazarus.freepascal.org> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org <mailto:Lazarus-es en lists.lazarus.freepascal.org> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es -- Try not to become a man of success but rather to become a man of value. /Albert Einstein/ _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es

------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20130311/366826f0/attachment-0001.html>

Reply by email

Martin Gomez
to Alfred Rivera

2013/3/11 Alfred Rivera <alfred en arsistemes.com>

Cierto, el uso de par�metros es bastante m�s elegante.

?Adem�s de ser mas facil de leer y mantener, usando par�metros se aceleran los 'insert into' ya que el SQL debe ser optimizado solo una vez, y como beneficio extra, se gana cierta inmunidad contra la inyecci�n SQL.

Es algo a lo que no estamos demasiado acostumbrados, pero debiesemos probar que sucede en nuestras aplicaciones si uno ingresa en el campo "nombre" el texto "'; DROP TABLE USUARIOS" ;)

?http://es.wikipedia.org/wiki/Inyecci%C3%B3n_SQL?

Try not to become a man of success but rather to become a man of value. *Albert Einstein* ------------ pr�xima parte ------------ Se ha borrado un adjunto en formato HTML... URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20130311/5b8a524d/attachment.html>

Reply by email

Héctor F. Fiandor Rosario
to Carlos Enrique Rodriguez: "H�ctor F. Fiandor Rosario" <hfiandor en infomed.sld.cu> escribi� Pareciera que el…

Estimados colegas, ya resolvi el problema (la almohada fue un buen consultor).

Simplemente escrib�:

sqltext4:='WHERE Costos_1.NoGerente = "'+index1+'" ';

y trabaja al kilo.

muchas gracias a todos,

saludos,

Ing. H�ctor F. Fiandor Rosario
hfiandor en infomed.sld.cu

Earlier message 39 lines
----- Original Message ----- From: Carlos Enrique Rodriguez To: Spanish version of Lazarus List Sent: Sunday, March 10, 2013 2:35 PM Subject: Re: [Lazarus-es] about sqlite3 from hfiandor 10 mar 2013 "H�ctor F. Fiandor Rosario" <hfiandor en infomed.sld.cu> escribi�: Estimados colegas: estoy haciendo una aplicacion con sqlite3 y tengo un problema para realizar una consulta. tengo una base de datos (tabla1) donde hay un campo para identificar a consultores (01...). tengo un listbox donde aparecen nombres de consultores, y al pinchar uno de ellos, genero una variable "index1" que indica el identificador de consultores seleccionado (01...). al realizar la consulta, selecciono los campos de la tabla1 que quiero incluir mediante SELECT .... FROM... continuo con la clausula WHERE campo tal = index1 y aqui es donde se marea el asunto: me dice que "index1" no es una columna. Para probarlo, en vez de escribir WHERE campo tal = index1 escribo WHERE campo tal = ' 01' y trabaja perfectamente para el consultor indicado con el identificador "01". Agradeceria infinitamente que me ayuden a resolver el problema. saludos, Ing. H�ctor F. Fiandor Rosario hfiandor en infomed.sld.cu ----------------------------------------------------------------------------Lazarus-es mailing listLazarus-es en lists.lazarus.freepascal.orghttp://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es ------------------------------------------------------------------------------

Reply by email