<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[Comunidad Gambas-es - Bases de Datos]]></title>
		<link>https://gambas-es.org/</link>
		<description><![CDATA[Comunidad Gambas-es - https://gambas-es.org]]></description>
		<pubDate>Sat, 16 May 2026 18:14:30 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[Problema con creación de BD SQlite3 que antes si funcionaba]]></title>
			<link>https://gambas-es.org/thread-2010.html</link>
			<pubDate>Thu, 12 Feb 2026 22:43:06 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://gambas-es.org/member.php?action=profile&uid=334">Marcos</a>]]></dc:creator>
			<guid isPermaLink="false">https://gambas-es.org/thread-2010.html</guid>
			<description><![CDATA[Hola, buen día chicos:<br />
<br />
Hace un par de meses venia trabajando en un proyecto personal para catalogar imágenes y dejar de tener todo perdido en el PC. ademas de tener la opción de crear un catalogo compartido con otros usuarios de la misma maquina. Bajo ese marco de trabajo tengo una rutina que hasta la versión 3.19 en kdeNeon me funcionaba perfecto.<br />
<br />
Por cosas de la vida actualice mi maquina a Manjaro con plasma y aquí esta la versión 3.21 de Gambas3. Me toco cambiar los componentes gb.db a gb.db2.<br />
<br />
La aplicación con la BD creada sigue funcionando, agrego, elimino, etc., pero al iniciar desde cero la aplicación donde debe crear la BD no hace nada por que la sección de creación de BD no funciona y no envía mensaje de error, salvo cuando reintenta abrir la BD y no la encuentra. <br />
<br />
&#36;DB.Databases.Add(Constants.DATABASE_NAME)  &lt;== esta linea no esta haciendo nada ni enviando mensaje alguno hacia afuera<br />
<br />
<br />
Sera error de la nueva versión?, error de los nuevos componentes?<br />
este código lo rescate desde el tutorial de <a href="http://jsbsan.blogspot.com.es/" target="_blank" rel="noopener" class="mycode_url">http://jsbsan.blogspot.com.es/</a> <br />
<hr class="mycode_hr" />
<div class="codeblock"><div class="title">Código:</div><div class="body" dir="ltr"><code>Private Sub CreateDatabase()<br />
  'Crear conexión temporal para crear la BD<br />
  &#36;DB = New Connection<br />
  &#36;DB.Type = Constants.DATABASE_SQLITE3<br />
  &#36;DB.Host = &#36;DbLibraryDirectory<br />
  &#36;DB.Name = "" 'Liberamos el nombre para poder crear la BD física<br />
  &#36;DB.Open()<br />
  If Error Then<br />
    &#36;Log4Gambas.Fatal(("No se puede abrir conexión para crear BD:") &amp; " " &amp; Error.Text)<br />
    ERROR.Propagate<br />
  Endif<br />
  'Ya sabemos que el archivo de base de datos no existe, aqui preguntamos via connect<br />
  If Not &#36;DB.Databases.Exist(Constants.DATABASE_NAME) Then<br />
    '' NOTE: Aqui ocurre la magia, se crea la base de datos<br />
    &#36;DB.Databases.Add(Constants.DATABASE_NAME)<br />
    Wait 0.05 ' Pequeña pausa para asegurar creación fisica del archivo<br />
    If Error Then<br />
      &#36;Log4Gambas.Fatal(("No se puede crear base de datos:") &amp; " " &amp; Error.Text)<br />
      &#36;DB.Close()<br />
      ERROR.Propagate<br />
    Endif<br />
  Endif<br />
  ' cerramos la conexion para asegurar soltarla y ahora usar el nombre<br />
  &#36;DB.Close()<br />
  ' Reconectar con el nombre de la BD y crear esquema<br />
  &#36;DB.Name = Constants.DATABASE_NAME<br />
  ' Volvemos a conectarnos<br />
  &#36;DB.Open()<br />
  If Error Then<br />
    &#36;Log4Gambas.Fatal(("No se puede reabrir BD recién creada:") &amp; " " &amp; Error.Text)<br />
    ERROR.Propagate<br />
  Endif<br />
  &#36;DB.Close()<br />
  &#36;Log4Gambas.Info(("Base de datos creada exitosamente"))<br />
End</code></div></div>]]></description>
			<content:encoded><![CDATA[Hola, buen día chicos:<br />
<br />
Hace un par de meses venia trabajando en un proyecto personal para catalogar imágenes y dejar de tener todo perdido en el PC. ademas de tener la opción de crear un catalogo compartido con otros usuarios de la misma maquina. Bajo ese marco de trabajo tengo una rutina que hasta la versión 3.19 en kdeNeon me funcionaba perfecto.<br />
<br />
Por cosas de la vida actualice mi maquina a Manjaro con plasma y aquí esta la versión 3.21 de Gambas3. Me toco cambiar los componentes gb.db a gb.db2.<br />
<br />
La aplicación con la BD creada sigue funcionando, agrego, elimino, etc., pero al iniciar desde cero la aplicación donde debe crear la BD no hace nada por que la sección de creación de BD no funciona y no envía mensaje de error, salvo cuando reintenta abrir la BD y no la encuentra. <br />
<br />
&#36;DB.Databases.Add(Constants.DATABASE_NAME)  &lt;== esta linea no esta haciendo nada ni enviando mensaje alguno hacia afuera<br />
<br />
<br />
Sera error de la nueva versión?, error de los nuevos componentes?<br />
este código lo rescate desde el tutorial de <a href="http://jsbsan.blogspot.com.es/" target="_blank" rel="noopener" class="mycode_url">http://jsbsan.blogspot.com.es/</a> <br />
<hr class="mycode_hr" />
<div class="codeblock"><div class="title">Código:</div><div class="body" dir="ltr"><code>Private Sub CreateDatabase()<br />
  'Crear conexión temporal para crear la BD<br />
  &#36;DB = New Connection<br />
  &#36;DB.Type = Constants.DATABASE_SQLITE3<br />
  &#36;DB.Host = &#36;DbLibraryDirectory<br />
  &#36;DB.Name = "" 'Liberamos el nombre para poder crear la BD física<br />
  &#36;DB.Open()<br />
  If Error Then<br />
    &#36;Log4Gambas.Fatal(("No se puede abrir conexión para crear BD:") &amp; " " &amp; Error.Text)<br />
    ERROR.Propagate<br />
  Endif<br />
  'Ya sabemos que el archivo de base de datos no existe, aqui preguntamos via connect<br />
  If Not &#36;DB.Databases.Exist(Constants.DATABASE_NAME) Then<br />
    '' NOTE: Aqui ocurre la magia, se crea la base de datos<br />
    &#36;DB.Databases.Add(Constants.DATABASE_NAME)<br />
    Wait 0.05 ' Pequeña pausa para asegurar creación fisica del archivo<br />
    If Error Then<br />
      &#36;Log4Gambas.Fatal(("No se puede crear base de datos:") &amp; " " &amp; Error.Text)<br />
      &#36;DB.Close()<br />
      ERROR.Propagate<br />
    Endif<br />
  Endif<br />
  ' cerramos la conexion para asegurar soltarla y ahora usar el nombre<br />
  &#36;DB.Close()<br />
  ' Reconectar con el nombre de la BD y crear esquema<br />
  &#36;DB.Name = Constants.DATABASE_NAME<br />
  ' Volvemos a conectarnos<br />
  &#36;DB.Open()<br />
  If Error Then<br />
    &#36;Log4Gambas.Fatal(("No se puede reabrir BD recién creada:") &amp; " " &amp; Error.Text)<br />
    ERROR.Propagate<br />
  Endif<br />
  &#36;DB.Close()<br />
  &#36;Log4Gambas.Info(("Base de datos creada exitosamente"))<br />
End</code></div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Soporte para pasar Arrays en Connection.Subst() con filtros dinámicos]]></title>
			<link>https://gambas-es.org/thread-2004.html</link>
			<pubDate>Mon, 19 Jan 2026 02:23:36 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://gambas-es.org/member.php?action=profile&uid=25">omoreno</a>]]></dc:creator>
			<guid isPermaLink="false">https://gambas-es.org/thread-2004.html</guid>
			<description><![CDATA[Hola,<br />
En Gambas3 la función <span style="font-weight: bold;" class="mycode_b">Connection.Subst()</span>  puede aceptar parámetros sueltos mediante (...) <br />
Esto funciona bien cuando la cantidad de parámetros es fija, pero se vuelve muy engorroso cuando se construyen consultas con <span style="font-weight: bold;" class="mycode_b">WHERE dinámicos</span>.<br />
En mi caso, los filtros se asignan en tiempo de ejecución a un vector, por ejemplo:<br />
<br />
<div class="codeblock"><div class="title">Código:</div><div class="body" dir="ltr"><code>FiltroX.Add(codigo)<br />
FiltroX.Add(fecha1)<br />
FiltroX.Add(fecha2)<br />
…<br />
ResultX = Conn.Exec(DB.Subst(SqlX, FiltroX))  '&lt;--- actualmente no se puede</code></div></div><br />
Si enviamos el <span style="font-weight: bold;" class="mycode_b">vector</span> simplificaría mucho el código y evitaría tener que usar <span style="font-weight: bold;" class="mycode_b">Select Case</span> para cada cantidad de parámetros que hay que enviar al Exec u otros comandos SQL, como en el ejemplo actual:<br />
<br />
<div class="codeblock"><div class="title">Código:</div><div class="body" dir="ltr"><code>  Select Case FiltrosX.Length<br />
    Case 0<br />
      resulado = Conn.Exec(DB.Subst(SqlX))<br />
    Case 1<br />
      resulado = Conn.Exec(DB.Subst(SqlX, FiltroX[0]))<br />
    Case 2<br />
      resulado = Conn.Exec(DB.Subst(SqlX, FiltroX[0],FiltroX[1]))<br />
    Case 3<br />
      resulado = Conn.Exec(DB.Subst(SqlX, FiltroX[0],FiltroX[1],FiltroX[2]))<br />
  End Select</code></div></div><br />
Lo ideal es poder enviar directamente un <span style="font-weight: bold;" class="mycode_b">array</span> a <span style="font-weight: bold;" class="mycode_b">DB.Subst</span>.<br />
<br />
He adjuntado un programa para que tengan una mejor idea de lo que busco.<br />
<br />
He publicado una solicitud en el BugTracker aver si lo adaptan.<br />
<br />
Gracias por sus posibles sugerencias.<br /><!-- start: postbit_attachments_attachment -->
<div class="row mt-2 g-1 text-muted">
	<div class="col-auto align-self-center">

<!-- start: attachment_icon -->
<img src="https://gambas-es.org/images/attachtypes/zip.png" title="ZIP File" style="height: 16px; width: 16px" border="0" alt=".zip" />
<!-- end: attachment_icon -->
		
	</div>
	<div class="col align-self-center">
		<a href="attachment.php?aid=585" target="_blank" title="">WhereDinamico.zip</a> (Tamaño: <span class="text-dark">11.14 KB</span> Descargas: <span class="text-dark">1)</span>
	</div>
</div>
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[Hola,<br />
En Gambas3 la función <span style="font-weight: bold;" class="mycode_b">Connection.Subst()</span>  puede aceptar parámetros sueltos mediante (...) <br />
Esto funciona bien cuando la cantidad de parámetros es fija, pero se vuelve muy engorroso cuando se construyen consultas con <span style="font-weight: bold;" class="mycode_b">WHERE dinámicos</span>.<br />
En mi caso, los filtros se asignan en tiempo de ejecución a un vector, por ejemplo:<br />
<br />
<div class="codeblock"><div class="title">Código:</div><div class="body" dir="ltr"><code>FiltroX.Add(codigo)<br />
FiltroX.Add(fecha1)<br />
FiltroX.Add(fecha2)<br />
…<br />
ResultX = Conn.Exec(DB.Subst(SqlX, FiltroX))  '&lt;--- actualmente no se puede</code></div></div><br />
Si enviamos el <span style="font-weight: bold;" class="mycode_b">vector</span> simplificaría mucho el código y evitaría tener que usar <span style="font-weight: bold;" class="mycode_b">Select Case</span> para cada cantidad de parámetros que hay que enviar al Exec u otros comandos SQL, como en el ejemplo actual:<br />
<br />
<div class="codeblock"><div class="title">Código:</div><div class="body" dir="ltr"><code>  Select Case FiltrosX.Length<br />
    Case 0<br />
      resulado = Conn.Exec(DB.Subst(SqlX))<br />
    Case 1<br />
      resulado = Conn.Exec(DB.Subst(SqlX, FiltroX[0]))<br />
    Case 2<br />
      resulado = Conn.Exec(DB.Subst(SqlX, FiltroX[0],FiltroX[1]))<br />
    Case 3<br />
      resulado = Conn.Exec(DB.Subst(SqlX, FiltroX[0],FiltroX[1],FiltroX[2]))<br />
  End Select</code></div></div><br />
Lo ideal es poder enviar directamente un <span style="font-weight: bold;" class="mycode_b">array</span> a <span style="font-weight: bold;" class="mycode_b">DB.Subst</span>.<br />
<br />
He adjuntado un programa para que tengan una mejor idea de lo que busco.<br />
<br />
He publicado una solicitud en el BugTracker aver si lo adaptan.<br />
<br />
Gracias por sus posibles sugerencias.<br /><!-- start: postbit_attachments_attachment -->
<div class="row mt-2 g-1 text-muted">
	<div class="col-auto align-self-center">

<!-- start: attachment_icon -->
<img src="https://gambas-es.org/images/attachtypes/zip.png" title="ZIP File" style="height: 16px; width: 16px" border="0" alt=".zip" />
<!-- end: attachment_icon -->
		
	</div>
	<div class="col align-self-center">
		<a href="attachment.php?aid=585" target="_blank" title="">WhereDinamico.zip</a> (Tamaño: <span class="text-dark">11.14 KB</span> Descargas: <span class="text-dark">1)</span>
	</div>
</div>
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Resultados dispares según el lenguaje [SOLUCIONADO]]]></title>
			<link>https://gambas-es.org/thread-1999.html</link>
			<pubDate>Sun, 30 Nov 2025 17:35:06 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://gambas-es.org/member.php?action=profile&uid=10">guizans</a>]]></dc:creator>
			<guid isPermaLink="false">https://gambas-es.org/thread-1999.html</guid>
			<description><![CDATA[En el proyecto que estoy haciendo, los resultado mostrados no me cuadran con los almacenados en la base de datos de SQLite3, así que he hecho pruebas y el resultado es cuanto menos que desconcertante. <br />
<br />
Aquí el código en Gambas:<br />
<br />
<div class="codeblock"><div class="title">Código:</div><div class="body" dir="ltr"><code>Public Sub Main()<br />
  <br />
  Dim conexion As Connection<br />
  Dim resultado As Result<br />
  <br />
  conexion = New Connection<br />
  conexion.Host = File.Dir("/home/mi/.local/share/lineas/")<br />
  conexion.Name = File.Name("lineas.db")<br />
  conexion.Type = "sqlite3"<br />
  <br />
  conexion.Open()<br />
    <br />
  resultado = conexion.Exec("SELECT intervalo, porcentajeCarga FROM LineaEstacions LEFT OUTER JOIN Estacions WHERE idLinea=2 AND Estacions.ID=idEstacions")<br />
  resultado.MoveFirst<br />
  <br />
  While resultado.Available<br />
    Print resultado["intervalo"]<br />
    Print resultado["porcentajeCarga"]<br />
    resultado.MoveNext<br />
  Wend<br />
  <br />
End</code></div></div><br />
Y el resultado de esta consulta sencilla es el siguiente:<br />
<blockquote class="mycode_quote"><cite>Cita:</cite>0 %<br />
-228735570<br />
0 %<br />
1<br />
0 %<br />
1<br />
0 %<br />
1</blockquote>
<br />
El número negativo que aparece no se de donde sale, y cambia en cada ejecución.<br />
Ahora en Python usando la misma base de datos y la misma consulta:<br />
<div class="codeblock"><div class="title">Código:</div><div class="body" dir="ltr"><code>import sqlite3<br />
<br />
bd = sqlite3.connect("lineas.db")<br />
cursor = bd.cursor()<br />
<br />
sentencia = "SELECT intervalo, porcentajeCarga FROM LineaEstacions LEFT OUTER JOIN Estacions WHERE idLinea=2 AND Estacions.ID=idEstacions"<br />
cursor.execute(sentencia)<br />
<br />
a = cursor.fetchall()<br />
<br />
for intervalo,porcentajeCarga in a:<br />
  print(intervalo)<br />
  print(porcentajeCarga)</code></div></div> El cual arroja lo siguiente:<br />
<blockquote class="mycode_quote"><cite>Cita:</cite>0 %<br />
00:00:00<br />
0 %<br />
00:00:00<br />
0 %<br />
00:00:00<br />
0 %<br />
00:00:0</blockquote>
<br />
Lo cual corresponde con lo almacenado en la base de datos. <br />
Y usando el programa DB Browser usando la misma consulta de la misma tabla el resultado es el mismo que en Python.<br />
En la tabla, intervalo es de tipo <span style="text-decoration: line-through;" class="mycode_s">INTEGER</span>  TEXT y porcentajeCarga es de tipo TEXT. Estoy usando Gambas 3.20.2 en Debian.<br />
<br />
¿Será un bug de esta versión? Es que es increíble.<br />
<br />
Un saludo.]]></description>
			<content:encoded><![CDATA[En el proyecto que estoy haciendo, los resultado mostrados no me cuadran con los almacenados en la base de datos de SQLite3, así que he hecho pruebas y el resultado es cuanto menos que desconcertante. <br />
<br />
Aquí el código en Gambas:<br />
<br />
<div class="codeblock"><div class="title">Código:</div><div class="body" dir="ltr"><code>Public Sub Main()<br />
  <br />
  Dim conexion As Connection<br />
  Dim resultado As Result<br />
  <br />
  conexion = New Connection<br />
  conexion.Host = File.Dir("/home/mi/.local/share/lineas/")<br />
  conexion.Name = File.Name("lineas.db")<br />
  conexion.Type = "sqlite3"<br />
  <br />
  conexion.Open()<br />
    <br />
  resultado = conexion.Exec("SELECT intervalo, porcentajeCarga FROM LineaEstacions LEFT OUTER JOIN Estacions WHERE idLinea=2 AND Estacions.ID=idEstacions")<br />
  resultado.MoveFirst<br />
  <br />
  While resultado.Available<br />
    Print resultado["intervalo"]<br />
    Print resultado["porcentajeCarga"]<br />
    resultado.MoveNext<br />
  Wend<br />
  <br />
End</code></div></div><br />
Y el resultado de esta consulta sencilla es el siguiente:<br />
<blockquote class="mycode_quote"><cite>Cita:</cite>0 %<br />
-228735570<br />
0 %<br />
1<br />
0 %<br />
1<br />
0 %<br />
1</blockquote>
<br />
El número negativo que aparece no se de donde sale, y cambia en cada ejecución.<br />
Ahora en Python usando la misma base de datos y la misma consulta:<br />
<div class="codeblock"><div class="title">Código:</div><div class="body" dir="ltr"><code>import sqlite3<br />
<br />
bd = sqlite3.connect("lineas.db")<br />
cursor = bd.cursor()<br />
<br />
sentencia = "SELECT intervalo, porcentajeCarga FROM LineaEstacions LEFT OUTER JOIN Estacions WHERE idLinea=2 AND Estacions.ID=idEstacions"<br />
cursor.execute(sentencia)<br />
<br />
a = cursor.fetchall()<br />
<br />
for intervalo,porcentajeCarga in a:<br />
  print(intervalo)<br />
  print(porcentajeCarga)</code></div></div> El cual arroja lo siguiente:<br />
<blockquote class="mycode_quote"><cite>Cita:</cite>0 %<br />
00:00:00<br />
0 %<br />
00:00:00<br />
0 %<br />
00:00:00<br />
0 %<br />
00:00:0</blockquote>
<br />
Lo cual corresponde con lo almacenado en la base de datos. <br />
Y usando el programa DB Browser usando la misma consulta de la misma tabla el resultado es el mismo que en Python.<br />
En la tabla, intervalo es de tipo <span style="text-decoration: line-through;" class="mycode_s">INTEGER</span>  TEXT y porcentajeCarga es de tipo TEXT. Estoy usando Gambas 3.20.2 en Debian.<br />
<br />
¿Será un bug de esta versión? Es que es increíble.<br />
<br />
Un saludo.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Mover un Result a una posición concreta.]]></title>
			<link>https://gambas-es.org/thread-1998.html</link>
			<pubDate>Sun, 30 Nov 2025 15:42:58 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://gambas-es.org/member.php?action=profile&uid=10">guizans</a>]]></dc:creator>
			<guid isPermaLink="false">https://gambas-es.org/thread-1998.html</guid>
			<description><![CDATA[Hola a todos.<br />
<br />
 Tengo una consulta a una base de datos SQLite3 y se almacena en una variable de tipo Result. Para simplificar digamos que tiene almacenado como 30 campos que son un "ID" y un "nombre". Ahora supongamos que el usuario introduce, o proviene de otra fuente, un ID y necesito mover el puntero de ese Result para obtener el "nombre". No he encontrado ninguna función que lo haga en Gambas. Lo único que se me ocurre es hacerlo con un bucle hasta encontrar el resultado<br />
<br />
<div class="codeblock"><div class="title">Código:</div><div class="body" dir="ltr"><code>While resultado.Available<br />
 if resultado["ID"] = idBuscada Then Print resultado["nombre"]<br />
 resultado.MoveNext<br />
Wend</code></div></div><br />
Es una opción, pero me parece algo farragosa, pero no se me ocurre otra, a menos que haga otra consulta a la base de datos para obtener el nombre.<br />
<br />
Un saludo.]]></description>
			<content:encoded><![CDATA[Hola a todos.<br />
<br />
 Tengo una consulta a una base de datos SQLite3 y se almacena en una variable de tipo Result. Para simplificar digamos que tiene almacenado como 30 campos que son un "ID" y un "nombre". Ahora supongamos que el usuario introduce, o proviene de otra fuente, un ID y necesito mover el puntero de ese Result para obtener el "nombre". No he encontrado ninguna función que lo haga en Gambas. Lo único que se me ocurre es hacerlo con un bucle hasta encontrar el resultado<br />
<br />
<div class="codeblock"><div class="title">Código:</div><div class="body" dir="ltr"><code>While resultado.Available<br />
 if resultado["ID"] = idBuscada Then Print resultado["nombre"]<br />
 resultado.MoveNext<br />
Wend</code></div></div><br />
Es una opción, pero me parece algo farragosa, pero no se me ocurre otra, a menos que haga otra consulta a la base de datos para obtener el nombre.<br />
<br />
Un saludo.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[gb.db2: columnas calculadas o martilladas]]></title>
			<link>https://gambas-es.org/thread-1916.html</link>
			<pubDate>Sat, 05 Apr 2025 15:30:25 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://gambas-es.org/member.php?action=profile&uid=25">omoreno</a>]]></dc:creator>
			<guid isPermaLink="false">https://gambas-es.org/thread-1916.html</guid>
			<description><![CDATA[Se tiene la siguiente consulta:<br />
<br />
<div class="codeblock"><div class="title">Código:</div><div class="body" dir="ltr"><code>&#36;Res = &#36;con.Exec("SELECT campo1, campo2, 'ABC' AS 'Dato' FROM xyz")</code></div></div><br />
Con la nueva versión del componte gb.gb2 me he encontrado con estos resultados en su colección Fields:<br />
<br />
Fields en SQLite: campo1, campo2, Dato<br />
Fields en  MariaDB: xyz.campo1, xyz.campo2, .Dato<br />
<br />
Luego si quería los datos del result con el código:<br />
<br />
C1 = &#36;Res[“campo1”]<br />
C2 = &#36;Res[“campo2”]<br />
Dabc = &#36;Res[“Dato”]<br />
<br />
En sqlite, todo bien pero en las base de datos relacionales…. ERROR!!!<br />
Todas mis consultas que tuvieran un campo calculado o “martillado” generaban error por que sistema decía que no existen esas columnas…<br />
Pues para las relacionales tuve que colocar el punto<br />
<br />
Dabc = &#36;Res[“<span style="color: #e82a1f;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">.</span></span>Dato”]<br />
<br />
¿Esto es  un Bug o la nueva forma de acceder a los campos de las tablas en base de datos relacionales con el nuevo componente gb.db2?<br />
<br />
Gracias por sus posibles respuestas.]]></description>
			<content:encoded><![CDATA[Se tiene la siguiente consulta:<br />
<br />
<div class="codeblock"><div class="title">Código:</div><div class="body" dir="ltr"><code>&#36;Res = &#36;con.Exec("SELECT campo1, campo2, 'ABC' AS 'Dato' FROM xyz")</code></div></div><br />
Con la nueva versión del componte gb.gb2 me he encontrado con estos resultados en su colección Fields:<br />
<br />
Fields en SQLite: campo1, campo2, Dato<br />
Fields en  MariaDB: xyz.campo1, xyz.campo2, .Dato<br />
<br />
Luego si quería los datos del result con el código:<br />
<br />
C1 = &#36;Res[“campo1”]<br />
C2 = &#36;Res[“campo2”]<br />
Dabc = &#36;Res[“Dato”]<br />
<br />
En sqlite, todo bien pero en las base de datos relacionales…. ERROR!!!<br />
Todas mis consultas que tuvieran un campo calculado o “martillado” generaban error por que sistema decía que no existen esas columnas…<br />
Pues para las relacionales tuve que colocar el punto<br />
<br />
Dabc = &#36;Res[“<span style="color: #e82a1f;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">.</span></span>Dato”]<br />
<br />
¿Esto es  un Bug o la nueva forma de acceder a los campos de las tablas en base de datos relacionales con el nuevo componente gb.db2?<br />
<br />
Gracias por sus posibles respuestas.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Base de datos pública ZXDB]]></title>
			<link>https://gambas-es.org/thread-1888.html</link>
			<pubDate>Wed, 12 Mar 2025 14:59:28 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://gambas-es.org/member.php?action=profile&uid=3">Shell</a>]]></dc:creator>
			<guid isPermaLink="false">https://gambas-es.org/thread-1888.html</guid>
			<description><![CDATA[Buenas!.<br />
<br />
<blockquote class="mycode_quote"><cite>Cita:</cite>ZXDB es una base de datos abierta que contiene información histórica de software, hardware, revistas y libros sobre ZX-Spectrum y máquinas relacionadas.</blockquote>
<br />
Lo cierto es que está diseñada para MySQL pero mediante los correspondientes scripts que se encuentra en la misma página de <br />
GItHub se convierte a SQLITE el archivo SQL (mediante un script, en principio hecho en Python).  Viene todo explicado, la estructura,<br />
en que webs  la usan (internamente), etc.<br />
<br />
Prácticamente el tamaño es el mismo, ronda unos 136MB, nada más y nada menos.<br />
Es una base que se actualiza cada x tiempo.<br />
<br />
Ahora como estoy retomando un poco las bases de datos, la he vuelto actualizar. Tiene 74 tablas.  <img src="https://gambas-es.org/images/smilies/rolleyes.png" alt="Rolleyes" title="Rolleyes" class="smilie smilie_6" /><br />
( No sé si esto sobrepasa los limites de Sqlite. Supongo que dependerá de las que tengas relacionadas, alguna característica).<br />
<br />
Y me quedé con las ganas de saber, información sobre la propia base. <br />
Por ejemplo, gráficamente. DB Browser for SQLite te dice las tablas que tiene.<br />
<br />
Pero claro, imaginar que este tipo de información quieres saberlo desde una sentencia SQL<br />
ó desde la propia terminal. Aja.<br />
<br />
He usado el comando en la termina sqlite3 y he cargado la base de datos.<br />
Luego con el comando ".help" te va mostrando las opciones de comando.<br />
con .dbinfo me ha mostrado esto:<br />
<br />
<blockquote class="mycode_quote"><cite>Cita:</cite>database page size:  4096<br />
write format:        1<br />
read format:        1<br />
reserved bytes:      0<br />
file change counter: 244<br />
database page count: 33271<br />
freelist page count: 0<br />
schema cookie:      71<br />
schema format:      4<br />
default cache size:  0<br />
autovacuum top root: 0<br />
incremental vacuum:  0<br />
text encoding:      1 (utf8)<br />
user version:        0<br />
application id:      0<br />
software version:    3044001<br />
number of tables:    71<br />
number of indexes:  120<br />
number of triggers:  0<br />
number of views:    0<br />
schema size:        40259<br />
data version        1</blockquote>
<br />
En parte son cosas que a lo mejor no haces directamente con sql, pero si con el propio comando sqlite3 desde la terminal.<br />
<br />
Ah, la base, que memoria.<br />
<br />
<a href="https://github.com/zxdb/ZXDB" target="_blank" rel="noopener" class="mycode_url">ZXDB</a><br />
<br />
<br />
<hr class="mycode_hr" />
Referente a limites. Existe el comando .limit<br />
<br />
<br />
<blockquote class="mycode_quote"><cite>Cita:</cite>.limit ?LIMIT? ?VAL?    Display or change the value of an SQLITE_LIMIT</blockquote>
<br />
Al entrarlo ha mostrado esto:  <br />
<br />
<div style="text-align: left;" class="mycode_align"><blockquote class="mycode_quote"><cite>Cita:</cite>      length 1000000000<br />
      sql_length 1000000000<br />
      column 2000<br />
      expr_depth 1000<br />
      compound_select 500<br />
      vdbe_op 250000000<br />
      function_arg 127<br />
      attached 10<br />
      like_pattern_length 50000<br />
      variable_number 250000<br />
      trigger_depth 1000<br />
      worker_threads 0</blockquote>
</div>
<br />
Saludos]]></description>
			<content:encoded><![CDATA[Buenas!.<br />
<br />
<blockquote class="mycode_quote"><cite>Cita:</cite>ZXDB es una base de datos abierta que contiene información histórica de software, hardware, revistas y libros sobre ZX-Spectrum y máquinas relacionadas.</blockquote>
<br />
Lo cierto es que está diseñada para MySQL pero mediante los correspondientes scripts que se encuentra en la misma página de <br />
GItHub se convierte a SQLITE el archivo SQL (mediante un script, en principio hecho en Python).  Viene todo explicado, la estructura,<br />
en que webs  la usan (internamente), etc.<br />
<br />
Prácticamente el tamaño es el mismo, ronda unos 136MB, nada más y nada menos.<br />
Es una base que se actualiza cada x tiempo.<br />
<br />
Ahora como estoy retomando un poco las bases de datos, la he vuelto actualizar. Tiene 74 tablas.  <img src="https://gambas-es.org/images/smilies/rolleyes.png" alt="Rolleyes" title="Rolleyes" class="smilie smilie_6" /><br />
( No sé si esto sobrepasa los limites de Sqlite. Supongo que dependerá de las que tengas relacionadas, alguna característica).<br />
<br />
Y me quedé con las ganas de saber, información sobre la propia base. <br />
Por ejemplo, gráficamente. DB Browser for SQLite te dice las tablas que tiene.<br />
<br />
Pero claro, imaginar que este tipo de información quieres saberlo desde una sentencia SQL<br />
ó desde la propia terminal. Aja.<br />
<br />
He usado el comando en la termina sqlite3 y he cargado la base de datos.<br />
Luego con el comando ".help" te va mostrando las opciones de comando.<br />
con .dbinfo me ha mostrado esto:<br />
<br />
<blockquote class="mycode_quote"><cite>Cita:</cite>database page size:  4096<br />
write format:        1<br />
read format:        1<br />
reserved bytes:      0<br />
file change counter: 244<br />
database page count: 33271<br />
freelist page count: 0<br />
schema cookie:      71<br />
schema format:      4<br />
default cache size:  0<br />
autovacuum top root: 0<br />
incremental vacuum:  0<br />
text encoding:      1 (utf8)<br />
user version:        0<br />
application id:      0<br />
software version:    3044001<br />
number of tables:    71<br />
number of indexes:  120<br />
number of triggers:  0<br />
number of views:    0<br />
schema size:        40259<br />
data version        1</blockquote>
<br />
En parte son cosas que a lo mejor no haces directamente con sql, pero si con el propio comando sqlite3 desde la terminal.<br />
<br />
Ah, la base, que memoria.<br />
<br />
<a href="https://github.com/zxdb/ZXDB" target="_blank" rel="noopener" class="mycode_url">ZXDB</a><br />
<br />
<br />
<hr class="mycode_hr" />
Referente a limites. Existe el comando .limit<br />
<br />
<br />
<blockquote class="mycode_quote"><cite>Cita:</cite>.limit ?LIMIT? ?VAL?    Display or change the value of an SQLITE_LIMIT</blockquote>
<br />
Al entrarlo ha mostrado esto:  <br />
<br />
<div style="text-align: left;" class="mycode_align"><blockquote class="mycode_quote"><cite>Cita:</cite>      length 1000000000<br />
      sql_length 1000000000<br />
      column 2000<br />
      expr_depth 1000<br />
      compound_select 500<br />
      vdbe_op 250000000<br />
      function_arg 127<br />
      attached 10<br />
      like_pattern_length 50000<br />
      variable_number 250000<br />
      trigger_depth 1000<br />
      worker_threads 0</blockquote>
</div>
<br />
Saludos]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[DB Browser for Sqlite. Extensiones]]></title>
			<link>https://gambas-es.org/thread-1887.html</link>
			<pubDate>Tue, 11 Mar 2025 10:15:09 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://gambas-es.org/member.php?action=profile&uid=3">Shell</a>]]></dc:creator>
			<guid isPermaLink="false">https://gambas-es.org/thread-1887.html</guid>
			<description><![CDATA[Buenas!<br />
<br />
¿ Alguien ha probado o añadido alguna extensión a esta aplicación ?. Por si sabe que hacen y cómo. <img src="https://gambas-es.org/images/smilies/rolleyes.png" alt="Rolleyes" title="Rolleyes" class="smilie smilie_6" /> <br />
<br />
<a href="https://sqlitebrowser.org/blog/support-for-sqlite-extensions-added/" target="_blank" rel="noopener" class="mycode_url">Extensiones para DB Browser for Sqlite</a><br />
<br />
Saludos]]></description>
			<content:encoded><![CDATA[Buenas!<br />
<br />
¿ Alguien ha probado o añadido alguna extensión a esta aplicación ?. Por si sabe que hacen y cómo. <img src="https://gambas-es.org/images/smilies/rolleyes.png" alt="Rolleyes" title="Rolleyes" class="smilie smilie_6" /> <br />
<br />
<a href="https://sqlitebrowser.org/blog/support-for-sqlite-extensions-added/" target="_blank" rel="noopener" class="mycode_url">Extensiones para DB Browser for Sqlite</a><br />
<br />
Saludos]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Db Browser Sqlite. Presentar la estructura en vertical u horizontal]]></title>
			<link>https://gambas-es.org/thread-1886.html</link>
			<pubDate>Tue, 11 Mar 2025 10:10:09 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://gambas-es.org/member.php?action=profile&uid=3">Shell</a>]]></dc:creator>
			<guid isPermaLink="false">https://gambas-es.org/thread-1886.html</guid>
			<description><![CDATA[Buenas!.<br />
<br />
Repasando los vídeos de Shordi sobre la creación de una aplicación profesional para Gambas, unas<br />
de las utilidades que usa, es esta del post. Y lo cierto es que  a la hora de presentar la estructura de la<br />
base de datos, donde ves toda la creación con las instrucciones por defecto se presenta en horizontal.<br />
<br />
Así que si la instrucción es larga puede que esta no se vea por la ventana lateral derecha.<br />
Y haya que estar desplazando la barra de desplazamiento para verla entera. Si pasas el cursor <br />
del ratón por encima también te la muestra.<br />
<br />
No sé como una de las veces Shordi logra en su segundo vídeo, al abrir la base que se le presente la estructura en vertical.<br />
<br />
<iframe width="560" height="315" src="//www.youtube-nocookie.com/embed/XPvC9bfK6RA" frameborder="0" allowfullscreen="true"></iframe><br />
<br />
Por más que miro las preferencia de la aplicación no aparece por ningún lado una opción así.<br />
<br />
¿ Alguien ha logrado ver la estructura en vertical ?. <br />
Lo mismo es cosa de la versión ó incluso el gestor de ventanas o escritorio.<br />
<br />
Saludos]]></description>
			<content:encoded><![CDATA[Buenas!.<br />
<br />
Repasando los vídeos de Shordi sobre la creación de una aplicación profesional para Gambas, unas<br />
de las utilidades que usa, es esta del post. Y lo cierto es que  a la hora de presentar la estructura de la<br />
base de datos, donde ves toda la creación con las instrucciones por defecto se presenta en horizontal.<br />
<br />
Así que si la instrucción es larga puede que esta no se vea por la ventana lateral derecha.<br />
Y haya que estar desplazando la barra de desplazamiento para verla entera. Si pasas el cursor <br />
del ratón por encima también te la muestra.<br />
<br />
No sé como una de las veces Shordi logra en su segundo vídeo, al abrir la base que se le presente la estructura en vertical.<br />
<br />
<iframe width="560" height="315" src="//www.youtube-nocookie.com/embed/XPvC9bfK6RA" frameborder="0" allowfullscreen="true"></iframe><br />
<br />
Por más que miro las preferencia de la aplicación no aparece por ningún lado una opción así.<br />
<br />
¿ Alguien ha logrado ver la estructura en vertical ?. <br />
Lo mismo es cosa de la versión ó incluso el gestor de ventanas o escritorio.<br />
<br />
Saludos]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Gestor de conexiones de base de datos de Gambas]]></title>
			<link>https://gambas-es.org/thread-1884.html</link>
			<pubDate>Sat, 08 Mar 2025 13:23:38 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://gambas-es.org/member.php?action=profile&uid=3">Shell</a>]]></dc:creator>
			<guid isPermaLink="false">https://gambas-es.org/thread-1884.html</guid>
			<description><![CDATA[Buenas!.<br />
<br />
¿ Qué tiene de malo el gestor de base de datos de Gambas o que pegas le veis ?. <br />
<br />
Si, cuando decimos. Quiero crear una aplicación en el wizard que es para base de datos <br />
y no le digo créame una aplicación QT y ahora me encargo de todo.<br />
<br />
Es que hace mucho que no uso el gestor de conexiones de Gambas y nunca más me ha dado por usarlo<br />
y mucho menos usar los controles de base de datos.<br />
<br />
<hr class="mycode_hr" />
Lo que voy viendo. Es algo limitado, es que no tiene nada que ver con DB Browser for SQLite.<br />
Quiero decir que hace cosa básicas, pero dentro de lo básico hace lo principal.<br />
No lo puedo pedir peras al olmo. <br />
<br />
Tendré que comenzar a crear la base solo con Gambas de esta forma y usar los controles.<br />
Y partiendo de esto, buscar mis propias alternativas diseñadas por mi y con vuestra ayuda,<br />
cuando me de por preguntar. <img src="https://gambas-es.org/images/smilies/rolleyes.png" alt="Rolleyes" title="Rolleyes" class="smilie smilie_6" /><br />
<br />
Saludos]]></description>
			<content:encoded><![CDATA[Buenas!.<br />
<br />
¿ Qué tiene de malo el gestor de base de datos de Gambas o que pegas le veis ?. <br />
<br />
Si, cuando decimos. Quiero crear una aplicación en el wizard que es para base de datos <br />
y no le digo créame una aplicación QT y ahora me encargo de todo.<br />
<br />
Es que hace mucho que no uso el gestor de conexiones de Gambas y nunca más me ha dado por usarlo<br />
y mucho menos usar los controles de base de datos.<br />
<br />
<hr class="mycode_hr" />
Lo que voy viendo. Es algo limitado, es que no tiene nada que ver con DB Browser for SQLite.<br />
Quiero decir que hace cosa básicas, pero dentro de lo básico hace lo principal.<br />
No lo puedo pedir peras al olmo. <br />
<br />
Tendré que comenzar a crear la base solo con Gambas de esta forma y usar los controles.<br />
Y partiendo de esto, buscar mis propias alternativas diseñadas por mi y con vuestra ayuda,<br />
cuando me de por preguntar. <img src="https://gambas-es.org/images/smilies/rolleyes.png" alt="Rolleyes" title="Rolleyes" class="smilie smilie_6" /><br />
<br />
Saludos]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Crear una aplicación para gestionar una base de datos]]></title>
			<link>https://gambas-es.org/thread-1883.html</link>
			<pubDate>Sat, 08 Mar 2025 13:20:32 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://gambas-es.org/member.php?action=profile&uid=3">Shell</a>]]></dc:creator>
			<guid isPermaLink="false">https://gambas-es.org/thread-1883.html</guid>
			<description><![CDATA[Buenas!.<br />
<br />
Pues si, puede parecer algo tonto. Pero al igual que construimos una aplicación que hace algo concreto.<br />
Como puede ser un juego, un bloc de notas, un editor, etc.<br />
<br />
¿ Y una aplicación que gestiona una base de datos ?.<br />
¿ Cuales son su requerimientos ?. <br />
¿ Hasta donde llegan ? <br />
<br />
¿ Y si luego digo ?, ah, podía haberle añadido otras cosas más.<br />
<br />
La probable respuesta que me daréis puede ser. Depende, depende de lo que trate la base de datos.<br />
Vale, hasta ahí, ok.<br />
<br />
No es lo mismo una aplicación que gestiona una biblioteca que una aplicación <br />
que gestiona una base de datos de juegos y ademas los hace funcionar.<br />
<br />
Pongamos el caso de la biblioteca. La base tendrá tres tablas:<br />
<br />
- Libros<br />
- Usuarios<br />
- Prestamos<br />
<br />
Tanto la tabla libros, como la de usuarios, se van a rellanar a mano. O casi, oye, no tengo un lector de código de barras. <img src="https://gambas-es.org/images/smilies/shy.png" alt="Shy" title="Shy" class="smilie smilie_7" /> <br />
<br />
Y como última tabla, la de prestamos se creará según los usuarios van solicitando libros y se tendrá que comprobar si<br />
el libro que solicita esta prestado ó esta fuera del intervalo de fecha de préstamo y devolución.<br />
<br />
La tabla de Prestamos es prácticamente solo un registro de todos los prestamos desde que comenzó a funcionar la base<br />
de datos.<br />
<br />
Consultas. <span style="font-weight: bold;" class="mycode_b">Esta es la cuestión</span>.<br />
<br />
Puedo tener un número determinado de consultas, ya sea de lectura, escritura. Libros, usuarios, prestamos, disponibilidad, clasificación, etc.<br />
¿ Cuál es la mejor forma desde Gambas de ejecutar esas consultas ?. <br />
¿ Botones ?. ¿ Tantos botones como consultas ?.<br />
¿ Un menú de opciones ?.<br />
<br />
Ahora supongamos que con el tiempo digo. Quiero añadir más consultas. <br />
<br />
Espero vuestras sugerencias. Me gustaría diseñar la aplicación gráfica que administre la base de datos de la mejor forma posible,<br />
o más adecuada.¿ Qué debería tener en cuenta a la hora de diseñarla ?<br />
<br />
Algo que valga para comenzar.  <img src="https://gambas-es.org/images/smilies/smile.png" alt="Smile" title="Smile" class="smilie smilie_1" /> <br />
<br />
Saludos]]></description>
			<content:encoded><![CDATA[Buenas!.<br />
<br />
Pues si, puede parecer algo tonto. Pero al igual que construimos una aplicación que hace algo concreto.<br />
Como puede ser un juego, un bloc de notas, un editor, etc.<br />
<br />
¿ Y una aplicación que gestiona una base de datos ?.<br />
¿ Cuales son su requerimientos ?. <br />
¿ Hasta donde llegan ? <br />
<br />
¿ Y si luego digo ?, ah, podía haberle añadido otras cosas más.<br />
<br />
La probable respuesta que me daréis puede ser. Depende, depende de lo que trate la base de datos.<br />
Vale, hasta ahí, ok.<br />
<br />
No es lo mismo una aplicación que gestiona una biblioteca que una aplicación <br />
que gestiona una base de datos de juegos y ademas los hace funcionar.<br />
<br />
Pongamos el caso de la biblioteca. La base tendrá tres tablas:<br />
<br />
- Libros<br />
- Usuarios<br />
- Prestamos<br />
<br />
Tanto la tabla libros, como la de usuarios, se van a rellanar a mano. O casi, oye, no tengo un lector de código de barras. <img src="https://gambas-es.org/images/smilies/shy.png" alt="Shy" title="Shy" class="smilie smilie_7" /> <br />
<br />
Y como última tabla, la de prestamos se creará según los usuarios van solicitando libros y se tendrá que comprobar si<br />
el libro que solicita esta prestado ó esta fuera del intervalo de fecha de préstamo y devolución.<br />
<br />
La tabla de Prestamos es prácticamente solo un registro de todos los prestamos desde que comenzó a funcionar la base<br />
de datos.<br />
<br />
Consultas. <span style="font-weight: bold;" class="mycode_b">Esta es la cuestión</span>.<br />
<br />
Puedo tener un número determinado de consultas, ya sea de lectura, escritura. Libros, usuarios, prestamos, disponibilidad, clasificación, etc.<br />
¿ Cuál es la mejor forma desde Gambas de ejecutar esas consultas ?. <br />
¿ Botones ?. ¿ Tantos botones como consultas ?.<br />
¿ Un menú de opciones ?.<br />
<br />
Ahora supongamos que con el tiempo digo. Quiero añadir más consultas. <br />
<br />
Espero vuestras sugerencias. Me gustaría diseñar la aplicación gráfica que administre la base de datos de la mejor forma posible,<br />
o más adecuada.¿ Qué debería tener en cuenta a la hora de diseñarla ?<br />
<br />
Algo que valga para comenzar.  <img src="https://gambas-es.org/images/smilies/smile.png" alt="Smile" title="Smile" class="smilie smilie_1" /> <br />
<br />
Saludos]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[ResultField, Table, Result]]></title>
			<link>https://gambas-es.org/thread-1882.html</link>
			<pubDate>Sat, 08 Mar 2025 12:55:36 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://gambas-es.org/member.php?action=profile&uid=3">Shell</a>]]></dc:creator>
			<guid isPermaLink="false">https://gambas-es.org/thread-1882.html</guid>
			<description><![CDATA[Buenas!.<br />
<br />
Retomando un poco el tema de las base de datos ( mi asignatura pendiente ).<br />
Y habiendo creado la base de datos del proyecto final para el curso de bases de datos<br />
con sqlite. Quise intenta ver de una forma por ahora texto de ver todo el contenido<br />
de la base de datos pero con Gambas.<br />
<br />
Eso incluía:<br />
<br />
- Las tablas<br />
- Sus campos<br />
- Los valores de los registros.<br />
<br />
Y dije, bueno y si fuese para cualquier base de dato, algo más genérico y que valiese<br />
para todas. A ver como lo hago.<br />
<br />
Entonces comencé por la conexión , que funcionaba y luego el resultado, rompiéndome<br />
la cabeza, que no me estaba devolviendo ningún resultado la consulta de selección y es que tenía<br />
la base de datos repetida, una con solo la estructura y la otra con datos.<br />
<br />
Digamos que construyo la base y para asegurarme de no perderla la guardo y modifico la copia,<br />
que era la que tenía toda la información.<br />
<br />
<div class="codeblock"><div class="title">Código:</div><div class="body" dir="ltr"><code>Private hConn As Connection<br />
<br />
Public Sub MostrarTodo()<br />
  Dim HResul As Result<br />
  Dim HRsf As ResultField<br />
  Dim hTable As Table<br />
  Dim snomtabla As String<br />
  hConn = ModGestBase.ConectarConBase()<br />
  For Each hTable In hConn.Tables<br />
    If hTable.System Then Continue<br />
    HResul = ModGestBase.MostrarTabla(hTable.Name)<br />
    snomtabla = "Nombre de la tabla: " &amp; hTable.Name<br />
    Print snomtabla<br />
    Print String(snomtabla.Len, "*")<br />
    'Mostrar cada campo y valor de este en cada uno de los resultados de la consulta<br />
    Do While HResul.Available<br />
      For Each HRsf In HResul.Fields 'Una colección<br />
        Print HRsf.Name &amp; " - " &amp; HResul[HRsf.Name]<br />
      Next<br />
      HResul.MoveNext<br />
      Print<br />
    Loop<br />
  Next<br />
  ModGestBase.CerrarConexion()<br />
End</code></div></div><br />
Con ResultFields  y su propiedad Fields es una colección.<br />
Así que teniendo la clave podemos obtener tanto el nombre del campo de la tabla como su valor.<br />
<br />
Y dije, bueno y ¿ qué pasa con las tablas ?.<br />
Al principio vi que se podía obtener con un array pero eso lleva a trabajar con indices<br />
y curiosamente, encontré la misma solución. <br />
<br />
La conexión tiene una propiedad llamada Tables. Definiendo un objeto de la clase Table,<br />
podía recorrer toda la tabla de la base de datos en cuestión.<br />
<br />
Y de esta forma pude ver la salida en la consola de Gambas.<br />
Parte de la salida en la consola, de la tabla libros.<br />
<br />
<blockquote class="mycode_quote"><cite>Cita:</cite>Nombre de la tabla: Libros<br />
**************************<br />
idLibro - 1<br />
titulo - Soledades. Galerías. Otros poemas<br />
genero - Poesía<br />
autor - Antonio Machado<br />
estado - Prestado<br />
<br />
idLibro - 2<br />
titulo - Divinas palabras<br />
genero - TragiComedia<br />
autor - Ramón Valle-Inclán<br />
estado - Disponible</blockquote>
<br />
Lógicamente la tabla tiene cosas más complejas creadas en si misma, vistas, triggers y una transacción para controlar el tema de los prestamos.<br />
<br />
Ahora lo que me surgen son otras dudas. Que plantearé en otro mensaje.<br />
<br />
<br />
Saludos]]></description>
			<content:encoded><![CDATA[Buenas!.<br />
<br />
Retomando un poco el tema de las base de datos ( mi asignatura pendiente ).<br />
Y habiendo creado la base de datos del proyecto final para el curso de bases de datos<br />
con sqlite. Quise intenta ver de una forma por ahora texto de ver todo el contenido<br />
de la base de datos pero con Gambas.<br />
<br />
Eso incluía:<br />
<br />
- Las tablas<br />
- Sus campos<br />
- Los valores de los registros.<br />
<br />
Y dije, bueno y si fuese para cualquier base de dato, algo más genérico y que valiese<br />
para todas. A ver como lo hago.<br />
<br />
Entonces comencé por la conexión , que funcionaba y luego el resultado, rompiéndome<br />
la cabeza, que no me estaba devolviendo ningún resultado la consulta de selección y es que tenía<br />
la base de datos repetida, una con solo la estructura y la otra con datos.<br />
<br />
Digamos que construyo la base y para asegurarme de no perderla la guardo y modifico la copia,<br />
que era la que tenía toda la información.<br />
<br />
<div class="codeblock"><div class="title">Código:</div><div class="body" dir="ltr"><code>Private hConn As Connection<br />
<br />
Public Sub MostrarTodo()<br />
  Dim HResul As Result<br />
  Dim HRsf As ResultField<br />
  Dim hTable As Table<br />
  Dim snomtabla As String<br />
  hConn = ModGestBase.ConectarConBase()<br />
  For Each hTable In hConn.Tables<br />
    If hTable.System Then Continue<br />
    HResul = ModGestBase.MostrarTabla(hTable.Name)<br />
    snomtabla = "Nombre de la tabla: " &amp; hTable.Name<br />
    Print snomtabla<br />
    Print String(snomtabla.Len, "*")<br />
    'Mostrar cada campo y valor de este en cada uno de los resultados de la consulta<br />
    Do While HResul.Available<br />
      For Each HRsf In HResul.Fields 'Una colección<br />
        Print HRsf.Name &amp; " - " &amp; HResul[HRsf.Name]<br />
      Next<br />
      HResul.MoveNext<br />
      Print<br />
    Loop<br />
  Next<br />
  ModGestBase.CerrarConexion()<br />
End</code></div></div><br />
Con ResultFields  y su propiedad Fields es una colección.<br />
Así que teniendo la clave podemos obtener tanto el nombre del campo de la tabla como su valor.<br />
<br />
Y dije, bueno y ¿ qué pasa con las tablas ?.<br />
Al principio vi que se podía obtener con un array pero eso lleva a trabajar con indices<br />
y curiosamente, encontré la misma solución. <br />
<br />
La conexión tiene una propiedad llamada Tables. Definiendo un objeto de la clase Table,<br />
podía recorrer toda la tabla de la base de datos en cuestión.<br />
<br />
Y de esta forma pude ver la salida en la consola de Gambas.<br />
Parte de la salida en la consola, de la tabla libros.<br />
<br />
<blockquote class="mycode_quote"><cite>Cita:</cite>Nombre de la tabla: Libros<br />
**************************<br />
idLibro - 1<br />
titulo - Soledades. Galerías. Otros poemas<br />
genero - Poesía<br />
autor - Antonio Machado<br />
estado - Prestado<br />
<br />
idLibro - 2<br />
titulo - Divinas palabras<br />
genero - TragiComedia<br />
autor - Ramón Valle-Inclán<br />
estado - Disponible</blockquote>
<br />
Lógicamente la tabla tiene cosas más complejas creadas en si misma, vistas, triggers y una transacción para controlar el tema de los prestamos.<br />
<br />
Ahora lo que me surgen son otras dudas. Que plantearé en otro mensaje.<br />
<br />
<br />
Saludos]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Cambios de componentes para base de datos]]></title>
			<link>https://gambas-es.org/thread-1881.html</link>
			<pubDate>Fri, 07 Mar 2025 21:57:39 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://gambas-es.org/member.php?action=profile&uid=3">Shell</a>]]></dc:creator>
			<guid isPermaLink="false">https://gambas-es.org/thread-1881.html</guid>
			<description><![CDATA[Buenas!.<br />
<br />
Por falta de costumbre y retomar el tema, parece que ha cambiado ahora los componentes para la base de datos.<br />
<br />
<a href="https://i.imgur.com/SwcXYgK.png" target="_blank" rel="noopener" class="mycode_url"><img src="https://i.imgur.com/SwcXYgKl.png" loading="lazy"  alt="[Imagen: SwcXYgKl.png]" class="mycode_img" /></a><br />
<br />
Aparece ahora un control llamado gb.db2<br />
<br />
Lo bueno es que para los que usaban gb.db les seguirá funcionando, pero parece que a la larga <br />
habrá que actualizarse y muchos de vosotros os va este tema de las base de datos.<br />
<br />
¿ Alguien sabe algo nuevo sobre este control ?. Vaya, vaya, desde la 3.20. <img src="https://gambas-es.org/images/smilies/rolleyes.png" alt="Rolleyes" title="Rolleyes" class="smilie smilie_6" /> <br />
<br />
<blockquote class="mycode_quote"><cite>Cita:</cite>This component allows you to access several database management systems. This component creates an intermediate layer between the specific server and your program, so that you can use exactly the same code whatever database backend you decide to use.</blockquote>
<br />
Eso debe ser como la anterior.<br />
<br />
<blockquote class="mycode_quote"><cite>Cita:</cite>This component creates an intermediate layer between the specific server and your program, so that you can use exactly the same code whatever database backend you decide to use.<br />
This goal is reached only if:<br />
You create your database by using the database manager or by using this component.<br />
You use the Find, Create and Edit methods.<br />
You don't put SQL values directly in the request, but use the substitution feature of the previous methods.<br />
You don't use the Exec method, that lets you send SQL request directly to the backend, so that you can access its specific features.<br />
If you don't need database independence, do as you like! :-)</blockquote>
<br />
<br />
<blockquote class="mycode_quote"><cite>Cita:</cite>This component replaces the now deprecated gb.db component.<br />
Its interface is mostly backward-compatible, except for the following:<br />
Support for SQLite 2 has been removed.<br />
The Blob class has been removed. Blob fields are now accessed exactly like string fields.</blockquote>
<br />
Así que el soporte para SQlite 2 ha sido eliminado.<br />
<br />
¿ Y vos que opináis ?. <img src="https://gambas-es.org/images/smilies/smile.png" alt="Smile" title="Smile" class="smilie smilie_1" /> <br />
<br />
Saludos]]></description>
			<content:encoded><![CDATA[Buenas!.<br />
<br />
Por falta de costumbre y retomar el tema, parece que ha cambiado ahora los componentes para la base de datos.<br />
<br />
<a href="https://i.imgur.com/SwcXYgK.png" target="_blank" rel="noopener" class="mycode_url"><img src="https://i.imgur.com/SwcXYgKl.png" loading="lazy"  alt="[Imagen: SwcXYgKl.png]" class="mycode_img" /></a><br />
<br />
Aparece ahora un control llamado gb.db2<br />
<br />
Lo bueno es que para los que usaban gb.db les seguirá funcionando, pero parece que a la larga <br />
habrá que actualizarse y muchos de vosotros os va este tema de las base de datos.<br />
<br />
¿ Alguien sabe algo nuevo sobre este control ?. Vaya, vaya, desde la 3.20. <img src="https://gambas-es.org/images/smilies/rolleyes.png" alt="Rolleyes" title="Rolleyes" class="smilie smilie_6" /> <br />
<br />
<blockquote class="mycode_quote"><cite>Cita:</cite>This component allows you to access several database management systems. This component creates an intermediate layer between the specific server and your program, so that you can use exactly the same code whatever database backend you decide to use.</blockquote>
<br />
Eso debe ser como la anterior.<br />
<br />
<blockquote class="mycode_quote"><cite>Cita:</cite>This component creates an intermediate layer between the specific server and your program, so that you can use exactly the same code whatever database backend you decide to use.<br />
This goal is reached only if:<br />
You create your database by using the database manager or by using this component.<br />
You use the Find, Create and Edit methods.<br />
You don't put SQL values directly in the request, but use the substitution feature of the previous methods.<br />
You don't use the Exec method, that lets you send SQL request directly to the backend, so that you can access its specific features.<br />
If you don't need database independence, do as you like! :-)</blockquote>
<br />
<br />
<blockquote class="mycode_quote"><cite>Cita:</cite>This component replaces the now deprecated gb.db component.<br />
Its interface is mostly backward-compatible, except for the following:<br />
Support for SQLite 2 has been removed.<br />
The Blob class has been removed. Blob fields are now accessed exactly like string fields.</blockquote>
<br />
Así que el soporte para SQlite 2 ha sido eliminado.<br />
<br />
¿ Y vos que opináis ?. <img src="https://gambas-es.org/images/smilies/smile.png" alt="Smile" title="Smile" class="smilie smilie_1" /> <br />
<br />
Saludos]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Bases de datos públicas utilizadas para aprender SQL]]></title>
			<link>https://gambas-es.org/thread-1871.html</link>
			<pubDate>Fri, 21 Feb 2025 15:45:49 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://gambas-es.org/member.php?action=profile&uid=3">Shell</a>]]></dc:creator>
			<guid isPermaLink="false">https://gambas-es.org/thread-1871.html</guid>
			<description><![CDATA[Buenas!.<br />
<br />
Pues esta es la respuesta de DeepSeek.<br />
<br />
<blockquote class="mycode_quote"><cite>Cita:</cite>Existen varias bases de datos de acceso público que puedes utilizar para aprender y practicar SQL. Aquí te menciono algunas de las más populares:<br />
<br />
### 1. **Chinook Database**<br />
  - **Descripción**: Es una base de datos de ejemplo que simula una tienda de música digital. Incluye tablas como `Artist`, `Album`, `Track`, `Customer`, `Invoice`, entre otras.<br />
  - **Uso**: Ideal para practicar consultas SQL, joins, y operaciones CRUD.<br />
  - **Enlace**: [Chinook Database](<a href="https://github.com/lerocha/chinook-database" target="_blank" rel="noopener" class="mycode_url">https://github.com/lerocha/chinook-database</a>)<br />
<br />
### 2. **Northwind Database**<br />
  - **Descripción**: Una base de datos clásica que simula una empresa de ventas. Incluye tablas como `Customers`, `Orders`, `Products`, `Suppliers`, etc.<br />
  - **Uso**: Perfecta para aprender consultas complejas, subconsultas, y manejo de relaciones entre tablas.<br />
  - **Enlace**: [Northwind Database](<a href="https://github.com/Microsoft/sql-server-samples/tree/master/samples/databases/northwind-pubs" target="_blank" rel="noopener" class="mycode_url">https://github.com/Microsoft/sql-server-...hwind-pubs</a>)<br />
<br />
### 3. **Sakila Database**<br />
  - **Descripción**: Es una base de datos de ejemplo creada por MySQL que simula un sistema de alquiler de películas. Incluye tablas como `Actor`, `Film`, `Customer`, `Rental`, etc.<br />
  - **Uso**: Muy útil para practicar consultas avanzadas, funciones de agregación, y manejo de fechas.<br />
  - **Enlace**: [Sakila Database](<a href="https://dev.mysql.com/doc/sakila/en/" target="_blank" rel="noopener" class="mycode_url">https://dev.mysql.com/doc/sakila/en/</a>)<br />
<br />
### 4. **AdventureWorks Database**<br />
  - **Descripción**: Una base de datos de ejemplo creada por Microsoft que simula una empresa de manufactura y ventas. Incluye tablas como `Product`, `SalesOrderHeader`, `Employee`, etc.<br />
  - **Uso**: Excelente para aprender SQL en entornos empresariales y practicar consultas complejas.<br />
  - **Enlace**: [AdventureWorks Database](<a href="https://github.com/Microsoft/sql-server-samples/tree/master/samples/databases/adventure-works" target="_blank" rel="noopener" class="mycode_url">https://github.com/Microsoft/sql-server-...ture-works</a>)<br />
<br />
### 5. **IMDB Dataset**<br />
  - **Descripción**: Aunque no es una base de datos relacional tradicional, el conjunto de datos de IMDB (Internet Movie Database) puede ser importado a una base de datos SQL para practicar.<br />
  - **Uso**: Ideal para practicar consultas sobre grandes volúmenes de datos y manejo de tablas grandes.<br />
  - **Enlace**: [IMDB Dataset](<a href="https://www.imdb.com/interfaces/" target="_blank" rel="noopener" class="mycode_url">https://www.imdb.com/interfaces/</a>)<br />
<br />
### 6. **World Database**<br />
  - **Descripción**: Una base de datos simple que contiene información sobre países, ciudades, y idiomas. Incluye tablas como `Country`, `City`, y `CountryLanguage`.<br />
  - **Uso**: Perfecta para principiantes que quieren practicar consultas básicas y joins.<br />
  - **Enlace**: [World Database](<a href="https://dev.mysql.com/doc/world-setup/en/" target="_blank" rel="noopener" class="mycode_url">https://dev.mysql.com/doc/world-setup/en/</a>)<br />
<br />
### 7. **Stack Overflow Data Dump**<br />
  - **Descripción**: Un volcado de datos de Stack Overflow que puedes importar a una base de datos SQL para practicar.<br />
  - **Uso**: Ideal para practicar consultas complejas y manejo de grandes volúmenes de datos.<br />
  - **Enlace**: [Stack Overflow Data Dump](<a href="https://archive.org/details/stackexchange" target="_blank" rel="noopener" class="mycode_url">https://archive.org/details/stackexchange</a>)<br />
<br />
### 8. **OpenStreetMap Data**<br />
  - **Descripción**: Datos geográficos de OpenStreetMap que pueden ser importados a una base de datos SQL.<br />
  - **Uso**: Útil para practicar consultas espaciales y manejo de datos geográficos.<br />
  - **Enlace**: [OpenStreetMap Data](<a href="https://www.openstreetmap.org" target="_blank" rel="noopener" class="mycode_url">https://www.openstreetmap.org</a>)<br />
<br />
### 9. **COVID-19 Datasets**<br />
  - **Descripción**: Conjuntos de datos públicos relacionados con la pandemia de COVID-19, que pueden ser importados a una base de datos SQL.<br />
  - **Uso**: Ideal para practicar consultas sobre datos reales y actuales.<br />
  - **Enlace**: [COVID-19 Data](<a href="https://github.com/owid/covid-19-data" target="_blank" rel="noopener" class="mycode_url">https://github.com/owid/covid-19-data</a>)<br />
<br />
### 10. **Google BigQuery Public Datasets**<br />
  - **Descripción**: Google ofrece una variedad de conjuntos de datos públicos que puedes consultar directamente usando SQL en BigQuery.<br />
  - **Uso**: Excelente para practicar SQL en un entorno de big data.<br />
  - **Enlace**: [Google BigQuery Public Datasets](<a href="https://cloud.google.com/bigquery/public-data" target="_blank" rel="noopener" class="mycode_url">https://cloud.google.com/bigquery/public-data</a>)<br />
<br />
Estas bases de datos te permiten practicar desde consultas básicas hasta operaciones más avanzadas, dependiendo de tu nivel de experiencia. ¡Espero que te sean útiles en tu aprendizaje de SQL!</blockquote>
<br />
En el curso estamos usando Chinook.  La NorthWind me suena de M&#36; Access.<br />
<br />
Saludos]]></description>
			<content:encoded><![CDATA[Buenas!.<br />
<br />
Pues esta es la respuesta de DeepSeek.<br />
<br />
<blockquote class="mycode_quote"><cite>Cita:</cite>Existen varias bases de datos de acceso público que puedes utilizar para aprender y practicar SQL. Aquí te menciono algunas de las más populares:<br />
<br />
### 1. **Chinook Database**<br />
  - **Descripción**: Es una base de datos de ejemplo que simula una tienda de música digital. Incluye tablas como `Artist`, `Album`, `Track`, `Customer`, `Invoice`, entre otras.<br />
  - **Uso**: Ideal para practicar consultas SQL, joins, y operaciones CRUD.<br />
  - **Enlace**: [Chinook Database](<a href="https://github.com/lerocha/chinook-database" target="_blank" rel="noopener" class="mycode_url">https://github.com/lerocha/chinook-database</a>)<br />
<br />
### 2. **Northwind Database**<br />
  - **Descripción**: Una base de datos clásica que simula una empresa de ventas. Incluye tablas como `Customers`, `Orders`, `Products`, `Suppliers`, etc.<br />
  - **Uso**: Perfecta para aprender consultas complejas, subconsultas, y manejo de relaciones entre tablas.<br />
  - **Enlace**: [Northwind Database](<a href="https://github.com/Microsoft/sql-server-samples/tree/master/samples/databases/northwind-pubs" target="_blank" rel="noopener" class="mycode_url">https://github.com/Microsoft/sql-server-...hwind-pubs</a>)<br />
<br />
### 3. **Sakila Database**<br />
  - **Descripción**: Es una base de datos de ejemplo creada por MySQL que simula un sistema de alquiler de películas. Incluye tablas como `Actor`, `Film`, `Customer`, `Rental`, etc.<br />
  - **Uso**: Muy útil para practicar consultas avanzadas, funciones de agregación, y manejo de fechas.<br />
  - **Enlace**: [Sakila Database](<a href="https://dev.mysql.com/doc/sakila/en/" target="_blank" rel="noopener" class="mycode_url">https://dev.mysql.com/doc/sakila/en/</a>)<br />
<br />
### 4. **AdventureWorks Database**<br />
  - **Descripción**: Una base de datos de ejemplo creada por Microsoft que simula una empresa de manufactura y ventas. Incluye tablas como `Product`, `SalesOrderHeader`, `Employee`, etc.<br />
  - **Uso**: Excelente para aprender SQL en entornos empresariales y practicar consultas complejas.<br />
  - **Enlace**: [AdventureWorks Database](<a href="https://github.com/Microsoft/sql-server-samples/tree/master/samples/databases/adventure-works" target="_blank" rel="noopener" class="mycode_url">https://github.com/Microsoft/sql-server-...ture-works</a>)<br />
<br />
### 5. **IMDB Dataset**<br />
  - **Descripción**: Aunque no es una base de datos relacional tradicional, el conjunto de datos de IMDB (Internet Movie Database) puede ser importado a una base de datos SQL para practicar.<br />
  - **Uso**: Ideal para practicar consultas sobre grandes volúmenes de datos y manejo de tablas grandes.<br />
  - **Enlace**: [IMDB Dataset](<a href="https://www.imdb.com/interfaces/" target="_blank" rel="noopener" class="mycode_url">https://www.imdb.com/interfaces/</a>)<br />
<br />
### 6. **World Database**<br />
  - **Descripción**: Una base de datos simple que contiene información sobre países, ciudades, y idiomas. Incluye tablas como `Country`, `City`, y `CountryLanguage`.<br />
  - **Uso**: Perfecta para principiantes que quieren practicar consultas básicas y joins.<br />
  - **Enlace**: [World Database](<a href="https://dev.mysql.com/doc/world-setup/en/" target="_blank" rel="noopener" class="mycode_url">https://dev.mysql.com/doc/world-setup/en/</a>)<br />
<br />
### 7. **Stack Overflow Data Dump**<br />
  - **Descripción**: Un volcado de datos de Stack Overflow que puedes importar a una base de datos SQL para practicar.<br />
  - **Uso**: Ideal para practicar consultas complejas y manejo de grandes volúmenes de datos.<br />
  - **Enlace**: [Stack Overflow Data Dump](<a href="https://archive.org/details/stackexchange" target="_blank" rel="noopener" class="mycode_url">https://archive.org/details/stackexchange</a>)<br />
<br />
### 8. **OpenStreetMap Data**<br />
  - **Descripción**: Datos geográficos de OpenStreetMap que pueden ser importados a una base de datos SQL.<br />
  - **Uso**: Útil para practicar consultas espaciales y manejo de datos geográficos.<br />
  - **Enlace**: [OpenStreetMap Data](<a href="https://www.openstreetmap.org" target="_blank" rel="noopener" class="mycode_url">https://www.openstreetmap.org</a>)<br />
<br />
### 9. **COVID-19 Datasets**<br />
  - **Descripción**: Conjuntos de datos públicos relacionados con la pandemia de COVID-19, que pueden ser importados a una base de datos SQL.<br />
  - **Uso**: Ideal para practicar consultas sobre datos reales y actuales.<br />
  - **Enlace**: [COVID-19 Data](<a href="https://github.com/owid/covid-19-data" target="_blank" rel="noopener" class="mycode_url">https://github.com/owid/covid-19-data</a>)<br />
<br />
### 10. **Google BigQuery Public Datasets**<br />
  - **Descripción**: Google ofrece una variedad de conjuntos de datos públicos que puedes consultar directamente usando SQL en BigQuery.<br />
  - **Uso**: Excelente para practicar SQL en un entorno de big data.<br />
  - **Enlace**: [Google BigQuery Public Datasets](<a href="https://cloud.google.com/bigquery/public-data" target="_blank" rel="noopener" class="mycode_url">https://cloud.google.com/bigquery/public-data</a>)<br />
<br />
Estas bases de datos te permiten practicar desde consultas básicas hasta operaciones más avanzadas, dependiendo de tu nivel de experiencia. ¡Espero que te sean útiles en tu aprendizaje de SQL!</blockquote>
<br />
En el curso estamos usando Chinook.  La NorthWind me suena de M&#36; Access.<br />
<br />
Saludos]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Between contra solo operadores lógicos. Tiempo de ejecución]]></title>
			<link>https://gambas-es.org/thread-1870.html</link>
			<pubDate>Fri, 21 Feb 2025 13:54:52 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://gambas-es.org/member.php?action=profile&uid=3">Shell</a>]]></dc:creator>
			<guid isPermaLink="false">https://gambas-es.org/thread-1870.html</guid>
			<description><![CDATA[Buenas!.<br />
<br />
En el curso estamos usando una base de datos que tiene una serie de registros, como unos 3000 registros en una tabla.<br />
Pues la diferencia de tiempo usando solo operadores lógicos fue de 21mS con respecto a usar Between y And, 6mS.<br />
<br />
Era un consulta que mostraba sobre unos 1500 registros, seleccionando dos campos.<br />
<br />
Las dos consultas hacían lo mismo, pero con between y and, el resultado tardó mucho menos. Pero mucho menos.<br />
<br />
Saludos]]></description>
			<content:encoded><![CDATA[Buenas!.<br />
<br />
En el curso estamos usando una base de datos que tiene una serie de registros, como unos 3000 registros en una tabla.<br />
Pues la diferencia de tiempo usando solo operadores lógicos fue de 21mS con respecto a usar Between y And, 6mS.<br />
<br />
Era un consulta que mostraba sobre unos 1500 registros, seleccionando dos campos.<br />
<br />
Las dos consultas hacían lo mismo, pero con between y and, el resultado tardó mucho menos. Pero mucho menos.<br />
<br />
Saludos]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Curso de SQL de Pildoras Informáticas]]></title>
			<link>https://gambas-es.org/thread-1868.html</link>
			<pubDate>Wed, 19 Feb 2025 22:59:06 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://gambas-es.org/member.php?action=profile&uid=3">Shell</a>]]></dc:creator>
			<guid isPermaLink="false">https://gambas-es.org/thread-1868.html</guid>
			<description><![CDATA[Buenas!.<br />
<br />
Aunque el curso se puede ver en Youtube, Supongo que a su autor le interesará que se vea en su web.<br />
Ademas es gratuito.<br />
<br />
<a href="https://www.pildorasinformaticas.es/course/curso-sql/" target="_blank" rel="noopener" class="mycode_url">Curso sobre SQL en Pildoras Informáticas</a><br />
<br />
Saludos]]></description>
			<content:encoded><![CDATA[Buenas!.<br />
<br />
Aunque el curso se puede ver en Youtube, Supongo que a su autor le interesará que se vea en su web.<br />
Ademas es gratuito.<br />
<br />
<a href="https://www.pildorasinformaticas.es/course/curso-sql/" target="_blank" rel="noopener" class="mycode_url">Curso sobre SQL en Pildoras Informáticas</a><br />
<br />
Saludos]]></content:encoded>
		</item>
	</channel>
</rss>