Este artículo tiene dos objetivos principales: explicar la manera de obtener más información de nuestra base de datos Access de Poker Tracker (en adelante, PT) a través de consultas SQL y detallar la estructura de las tablas de esta base de datos para saber dónde hacer las consultas. Está orientado hacia los usuarios del PT que tienen un nivel básico de manejo de la informática (o sea, ni puta idea) y quieren obtener datos que actualmente no muestra el programa. Bueno, si no quieres más información, quizás tengas la curiosidad de saber cómo funciona por dentro PT y le pierdas el miedo a esto de los ordenadores. En los foros de PT hay un hilo en inglés que me ha servido de base para este artículo y en estos foros, además, puedes encontrar consultas SQL hechas por usuarios de PT.
Por defecto, el programa PT almacena los datos que captura de las diferentes salas de póquer en un archivo de base de datos Access. Éste archivo tiene la extensión ".mdb" y no es más que una manera de guardar la información. Esta información la obtiene PT de los historiales de las manos que se almacenan en nuestro disco duro en los directorios de las aplicaciones de las salas de póquer creados a tal efecto (la ruta que tenemos que poner en las ventanas de auto-import del PT para que pueda leer las manos). Lo que hace PT es leer esos ficheros de texto que contienen las manos jugadas, interpretar la información que de ellos se puede sacar (jugadores, stacks, nuestras cartas de mano, cartas comunitarias, apuestas, ganador de la mano, etc.) y escribirla en la base de datos de manera apropiada para que después pueda ser procesada.
PT da la opción de guardar la información en otro tipo de base de datos llamada PostgreSQL. Es totalmente gratuita y su código está disponible para todo el mundo. Tiene algunas ventajas sobre Access como son no tener limitación de espacio, ser algo más rápida, más estable y más robusta. El inconveniente es que hay que instalarla y configurar algunos parámetros en el PT para que funcione, pero tampoco nada demasiado complicado. Ahora bien, si no jugamos un número excesivo de manos, se puede usar Access tranquilamente. El problema de las bases de datos de Access es que tienen una limitación de tamaño de 2GB y hay que compactarlas de vez en cuando para que no se haga muy lento el acceso a los datos que contienen. Una solución es crear varias bases de datos de Access en PT, aunque es un poco latoso tener que estar cambiando de una a otra según donde quieras guardar los datos de juego.
El método que voy a explicar a continuación solo es válido para aquellos que guardan los datos del PT en una base de datos Access. Para realizar consultas SQL sobre ella, se necesita algún programa que tenga esta función incluida. En principio, se pueden utilizar tanto Microsoft Access como Microsoft Excel, aunque si no se dispone de estos programas, es posible bajarse algún programa gratuito que nos permita hacer consultas Access como por ejemplo SQueAl. En primer lugar mostraré simplemente cómo hacer la consulta sin entrar a analizar en detalle otros aspectos un poco más complejos que dejo para más adelante.
Ejecutar una consulta con Microsoft Access
Antes de comenzar una advertencia: Microsoft Access es la aplicación nativa para las bases de datos Access de PT, con lo que cualquier cambio que se haga sobre la tablas o borrado de elementos por error pueden provocar daños irreparables que implicarían la inutilización de la base de datos; así que cuida donde metes las zarpas y no pulses aceptar sin leer el mensaje. En principio, si sigues los pasos indicados no hay ningún problema, pero por si acaso, ten siempre una copia de seguridad de tu base de datos (basta con hacer una copia del archivo ".mdb" donde tengas la base de datos).
La consulta que se va a hacer es la de parejas que han mejorado a trío en el flop. El código SQL para esta consulta es el siguiente (ten en cuenta que esto no es un tutorial ni de SQL ni de Access aunque posteriormente explicaré algunos conceptos, pero si quieres más información la red está llena de tutoriales sencillos):
SELECT gp.hole_cards AS Par, count(*) AS Veces, SUM(
IIF(left(g.flop_1,1)=left(gp.hole_card_1,1),1,
IIF(left(g.flop_2,1)=left(gp.hole_card_1,1),1,
IIF(left(g.flop_3,1)=left(gp.hole_card_1,1),1,
0)))) AS [Trío en flop]
FROM game_players AS gp INNER JOIN game AS g ON gp.game_id = g.game_id
WHERE gp.player_id = (select pref_value from prefs where pref_key = 'RP')
AND gp.pair_hand = 1
AND gp.saw_flop_n = 1
GROUP BY gp.hole_cards, gp.card_order1
ORDER BY gp.card_order1 DESC;
Para empezar, arranca la aplicación Microsoft Access. En el menú "Archivo" escoge la opción "Abrir..." y en la ventana que se presenta, navega hasta seleccionar la base de datos sobre la que quieras hacer la consulta. Por defecto, la base de datos de PT es "ptrack.mdb" (puede que no aparezca la extensión ".mdb") y se encuentra en la ruta: "C:\Archivos de programa\Poker Tracker V2" (también se puede abrir pulsando dos veces sobre el archivo "ptrack.mdb" en el explorador de Windows.
Aparecerá la siguiente pantalla. Debes pulsar en "Consultas" ("Queries" si tienes el programa en inglés) y a continuación en el menú de la ventana mostrada seleccionar "Nuevo" y en la nueva ventana "Vista Diseño" (o directamente "Crear una consulta en vista Diseño").
Aparecerá una ventana de "Consulta de selección" y sobre ella una ventana de "Mostrar Tabla".
Cierra esta última ventana y nos quedamos con la ventana de consulta. Ahora debes pulsar el icono "SQL" que se encuentra debajo de "Archivo" o seleccionar "Ver->Vista SQL".
Ahora ya solo nos queda copiar (o escribir) la consulta a realizar en la ventana y pulsar el icono "!" o seleccionar "Consulta->Ejecutar" para que obtengamos los resultados.
Se puede guardar la consulta para no tener que copiarla cada vez que queremos obtener la información; para ello basta pulsar el icono del disquete o seleccionar "Archivo->Guardar" y darle un nombre a la consulta, almacenándose junto con el resto de consultas previas en el apartado de "Consultas" de la base de datos visto en la primera imagen. Lo que se guarda es el texto de la consulta, no el resultado; si se quiere guardar el resultado habrá que copiarlo y pegarlo en otra aplicación (Excel, Word, Block de notas, etc.).
Una última consideración, de las instrucciones SQL que se pueden ejecutar, solo "SELECT" no tiene como resultado modificar las tablas de las bases de datos (simplemente muestra información), así que no copiéis y ejecutéis consultas que incluyan palabras como "DROP", "INSERT", "UPDATE" o "DELETE" y, en general, consultas sospechosas no verificadas por otros usuarios más duchos en la materia. En el siguiente apartado explicaré en detalle las tablas de la base de datos y un poco de SQL (no demasiado, necesitarás un tutorial más completo) para que puedas hacer tus propias consultas.
sábado, 27 de enero de 2007
Cómo realizar consultas SQL en la BD de Poker Tracker. Parte I.
Publicadas por
spainfull
a la/s
10:43
Etiquetas: Poker Tracker
Suscribirse a:
Comentarios de la entrada (Atom)
2 comentarios:
Hola, ¡vaya distibucion de pares! ¿Dónde juegas? A ver si va a ser verdad eso de que reparten más cartas altas que bajas...
Enhorabuena por el blog. Lo encontré el otro día en un descanso del tajo y, al cabo de un rato, tuve que dejar de leer porque tenía tal ataque de risa que estaba dando el cante.
hola pribys, me alegro de que te guste.
Las estadísticas son de toda la base de datos que tengo, en las que se mezclan bastantes niveles y salas. Ten en cuenta que hay que ver el flop para que estén reflejadas, por lo que es lógico que aparezcan más veces las parejas mayores.
Saludos.
Publicar un comentario