Czy można można modyfikować bazę losowań za pomocą SQL

Pytania i odpowiedzi dotyczące użytkowania programu LottoCAD

Czy można można modyfikować bazę losowań za pomocą SQL

Postby Kmicic » 2014-06-16, 15:14

Proszę mi powiedzieć, czy w programie LCD można modyfikować
bazę losowań za pomocą Zapytań SQL , ale tak, aby ta nowa baza widoczna była
dla poszczególnych opcji w programie.
Na przykład: żeby widoczne było, co drugie losowanie.
I jeśli, jest to możliwe to jak to zrobić ?


To trochę pracy ale można to zrobić. Jako przykład podam jak zrobić dwie gry (satelickie) do gry LittleLotto (dla Mini Lotto robimy to analogicznie).

Najpierw utworzymy dwie nowe gry. LittleLottoEven (dla losowań parzystych) i LittleLottoOdd (dla losowań nie parzystych.
długi i skomplikowany proces tworzenia gier usprawnimy stosując zapytania SQL. LottoCAD obsługuje SQL w (standardzie)dialekcie języka SQL-92.
a teraz krok po kroku :

1. Otwieramy LottoCAD i z menu Pliki wybieramy Game Manager.
2. Wybieramy zakładkę SQL
3. Wklejamy skrypt który sklonuje nam grę LittleLotto do gry LittleLottoEven. Jeżeli tworzymy inną grę to najpierw sprawdźmy w tabeli gier potrzebne nam dane a mianowicie unikalny numer nowej gry, nazwę nowej gry, nazwę nowej tabeli losowań dla nowej gry i ID gry matki :
Code: [Select all] [Expand/Collapse] [Download] (Untitled)
  1. INSERT INTO Games FIELDS (  /* Utworzymy bazę LittleLottoEven o ID=147 i Nazwie tabeli losowań LittleLottoEven*/
  2.    "ID",                     /* Tabela zostanie utworzona jako kopia gry właściwej o nazwie LITTLE_LOTTO, pola jak wyżej*/
  3.    "Nbrs_All",               /* trzeba wpisać w odpowiednie pola w podzapytaniu SELECT przy których są komentarze.*/
  4.    "Nbrs_Drawn",
  5.    "TicketPickMin",
  6.    "TicketPickMax",
  7.    "TicketPlaysMin",
  8.    "TicketPlaysMax",
  9.    "Game_Name",
  10.    "Country",
  11.    "State_city",
  12.    "Adress",
  13.    "Ticket_Rows",
  14.    "Ticket_Cols",
  15.    "Stake_Game",
  16.    "Stake_min",
  17.    "Stake_max",
  18.    "Charge_of_bet",
  19.    "FirstDateLos",
  20.    "FirstIDLos",
  21.    "DatabaseName",
  22.    "Sun",
  23.    "Mon",
  24.    "Tue",
  25.    "Wed",
  26.    "Thu",
  27.    "Fri",
  28.    "Sat",
  29.    "FileNamePrefix",
  30.    "FileNameExt",
  31.    "MoneySymbol",
  32.    "BonusGame",
  33.    "LargeIcon",
  34.    "PrintModul",
  35.    "PrintModulName",
  36.    "UpdateModul",
  37.    "UpdateModulName",
  38.    "Range2Game",
  39.    "Range2Nbrs",
  40.    "Range2Drawn",
  41.    "GameUrl",
  42.    "UpdateURL",
  43.    "AlternateURL",
  44.    "UseAlternateURL",
  45.    "BonusDraw",
  46.    "JsonPrint"
  47. ) SELECT
  48.    147,                 /* zamiast 148 wpisz unikalny numer nowej gry */
  49.    "Nbrs_All",
  50.    "Nbrs_Drawn",
  51.    "TicketPickMin",
  52.    "TicketPickMax",
  53.    "TicketPlaysMin",
  54.    "TicketPlaysMax",
  55.    'LittleLottoEven',   /* zamiast NewLittleLotto wpisz unikalną nazwę nowej gry */
  56.    "Country",          /* uwaga : nazwy wpisujemy ograniczone pojedynczym cudzysłowem 'nazwa', */
  57.    "State_city",
  58.    "Adress",
  59.    "Ticket_Rows",
  60.    "Ticket_Cols",
  61.    "Stake_Game",
  62.    "Stake_min",
  63.    "Stake_max",
  64.    "Charge_of_bet",
  65.    "FirstDateLos",
  66.    "FirstIDLos",
  67.    'LittleLottoEven',   /* zamiast NewLittleLotto wpisz unikalną nazwę bazy losowań nowej gry */
  68.    "Sun",                  /* uwaga : nazwy wpisujemy ograniczone pojedynczym cudzysłowem 'nazwa', */
  69.    "Mon",
  70.    "Tue",
  71.    "Wed",
  72.    "Thu",
  73.    "Fri",
  74.    "Sat",
  75.    "FileNamePrefix",
  76.    "FileNameExt",
  77.    "MoneySymbol",
  78.    "BonusGame",
  79.    "LargeIcon",
  80.    "PrintModul",
  81.    "PrintModulName",
  82.    "UpdateModul",
  83.    "UpdateModulName",
  84.    "Range2Game",
  85.    "Range2Nbrs",
  86.    "Range2Drawn",
  87.    "GameUrl",
  88.    "UpdateURL",
  89.    "AlternateURL",
  90.    "UseAlternateURL",
  91.    "BonusDraw",
  92.    "JsonPrint" FROM Games
  93.    WHERE ID=143;
  94.  
GeSHi © Codebox Plus


4. Wciskamy przycisk "Execute".

Image

teraz w zakładce "Baza Gier" sprawdź cz gra się utworzyła. (Przesuń bocznym barem aby odświeżyć tabelę).

Image

Grę w zestawie już mamy teraz utworzymy tabelę losowań :
Code: [Select all] [Expand/Collapse] [Download] (Untitled)
  1. CREATE TABLE IF NOT EXISTS "LittleLottoEven" /* tu wpisujemy nazwę tabeli gry jak powyżej*/
  2. (
  3.    "_RecordID" AUTOINC NOT NULL,
  4.    "ID" SMALLINT NOT NULL,
  5.    "DATE" TIMESTAMP NOT NULL,
  6.    "L1" SMALLINT,
  7.    "L2" SMALLINT,
  8.    "L3" SMALLINT,
  9.    "L4" SMALLINT,
  10.    "L5" SMALLINT,
  11. PRIMARY KEY ("ID") COMPRESS NONE
  12. DESCRIPTION 'Baza parzystych będzie kopią losowań parzystych gry LittleLotto)'
  13. );
  14.  
GeSHi © Codebox Plus

Pamiętamy aby nazwa tabeli danych ta zakreślona na żółto, odpowiadała nazwie tabeli losowań wpisanej w poprzednim zapytaniu.

Image

Teraz zaimportujemy losowania do tabeli, ( użytkownik chciał aby były to co drugie losowania). Stąd warunek dzielenia MODulo 2, jeżeli importujesz wszystkie losowania to na końcu zapytania wstawiamy zamiast WHERE MOD("_RecordID",2)=0; wstawiamy WHERE 1 lub WHERE _RecordID>=0 :

Code: [Select all] [Expand/Collapse] [Download] (Untitled)
 INSERT INTO LittleLottoEven FIELDS ( /* Importujemy tylko losowania parzyste */
   "ID",
   "DATE",
   "L1",
   "L2",
   "L3",
   "L4",
   "L5"
) SELECT
   "ID",
   "DATE",
   "L1",
   "L2",
   "L3",
   "L4",
   "L5" FROM LITTLE_LOTTO
   WHERE MOD("_RecordID",2)=0; /* tylko parzyste */
GeSHi © Codebox Plus


I po wszystkim , teraz w zakładce "Wybór gry do programu" przyciskiem [ > ] przesuwamy wskaźnk na koniec. Wciskamy polecenie dodania gry do zestawu gier , klawisz [ + ] i z rozwijanego pola pod klawiszami nawigacji górnej wybieramy naszą nową grę. Zatwierdzamy wybór zestawu i zmiany klawiszem [ V ] i gotowe, wciskamy [ OK ] i po wybraniu w paneku nowej gry jeżeli indeksy się nie zgadzają to system przeindeksuje (uporządkuje) wszystkie losowania.

I gotowe.

Na koniec zamieszczam w załączniku, wszystkie sktypty dla gry parzystch i nieparzystych utworzonych z tej samej matki. Zaptania można traktować jako szablon do innych gier z tym że jeżeli ilość liczb losowanych będzie inna niż 5 to musimy dopisać pola L6, L7 itd ...

pozdrawiam
Wojtek

Code: [Select all] [Expand/Collapse] [Download] (Untitled)
  1.  INSERT INTO Games FIELDS (  /* Utworzymy bazę LittleLottoEven o ID=147 i Nazwie tabeli losowań LittleLottoEven*/
  2.    "ID",                     /* Tabela zostanie utworzona jako kopia gry właściwej o nazwie LITTLE_LOTTO, pola jak wyżej*/
  3.    "Nbrs_All",               /* trzeba wpisać w odpowiednie pola w podzapytaniu SELECT przy których są komentarze.*/
  4.    "Nbrs_Drawn",
  5.    "TicketPickMin",
  6.    "TicketPickMax",
  7.    "TicketPlaysMin",
  8.    "TicketPlaysMax",
  9.    "Game_Name",
  10.    "Country",
  11.    "State_city",
  12.    "Adress",
  13.    "Ticket_Rows",
  14.    "Ticket_Cols",
  15.    "Stake_Game",
  16.    "Stake_min",
  17.    "Stake_max",
  18.    "Charge_of_bet",
  19.    "FirstDateLos",
  20.    "FirstIDLos",
  21.    "DatabaseName",
  22.    "Sun",
  23.    "Mon",
  24.    "Tue",
  25.    "Wed",
  26.    "Thu",
  27.    "Fri",
  28.    "Sat",
  29.    "FileNamePrefix",
  30.    "FileNameExt",
  31.    "MoneySymbol",
  32.    "BonusGame",
  33.    "LargeIcon",
  34.    "PrintModul",
  35.    "PrintModulName",
  36.    "UpdateModul",
  37.    "UpdateModulName",
  38.    "Range2Game",
  39.    "Range2Nbrs",
  40.    "Range2Drawn",
  41.    "GameUrl",
  42.    "UpdateURL",
  43.    "AlternateURL",
  44.    "UseAlternateURL",
  45.    "BonusDraw",
  46.    "JsonPrint"
  47. ) SELECT
  48.    147,                 /* zamiast 148 wpisz unikalny numer nowej gry */
  49.    "Nbrs_All",
  50.    "Nbrs_Drawn",
  51.    "TicketPickMin",
  52.    "TicketPickMax",
  53.    "TicketPlaysMin",
  54.    "TicketPlaysMax",
  55.    'LittleLottoEven',   /* zamiast NewLittleLotto wpisz unikalną nazwę nowej gry */
  56.    "Country",          /* uwaga : nazwy wpisujemy ograniczone pojedynczym cudzysłowem 'nazwa', */
  57.    "State_city",
  58.    "Adress",
  59.    "Ticket_Rows",
  60.    "Ticket_Cols",
  61.    "Stake_Game",
  62.    "Stake_min",
  63.    "Stake_max",
  64.    "Charge_of_bet",
  65.    "FirstDateLos",
  66.    "FirstIDLos",
  67.    'LittleLottoEven',   /* zamiast NewLittleLotto wpisz unikalną nazwę bazy losowań nowej gry */
  68.    "Sun",                  /* uwaga : nazwy wpisujemy ograniczone pojedynczym cudzysłowem 'nazwa', */
  69.    "Mon",
  70.    "Tue",
  71.    "Wed",
  72.    "Thu",
  73.    "Fri",
  74.    "Sat",
  75.    "FileNamePrefix",
  76.    "FileNameExt",
  77.    "MoneySymbol",
  78.    "BonusGame",
  79.    "LargeIcon",
  80.    "PrintModul",
  81.    "PrintModulName",
  82.    "UpdateModul",
  83.    "UpdateModulName",
  84.    "Range2Game",
  85.    "Range2Nbrs",
  86.    "Range2Drawn",
  87.    "GameUrl",
  88.    "UpdateURL",
  89.    "AlternateURL",
  90.    "UseAlternateURL",
  91.    "BonusDraw",
  92.    "JsonPrint" FROM Games
  93.    WHERE ID=143;
  94.  
  95.  INSERT INTO Games FIELDS (  /* Utworzymy bazę LittleLottoOdd o ID=147 i Nazwie tabeli losowań LittleLottoOdd*/
  96.    "ID",                     /* Tabela zostanie utworzona jako kopia gry właściwej o nazwie LITTLE_LOTTO, pola jak wyżej*/
  97.    "Nbrs_All",               /* trzeba wpisać w odpowiednie pola w podzapytaniu SELECT przy których są komentarze.*/
  98.    "Nbrs_Drawn",
  99.    "TicketPickMin",
  100.    "TicketPickMax",
  101.    "TicketPlaysMin",
  102.    "TicketPlaysMax",
  103.    "Game_Name",
  104.    "Country",
  105.    "State_city",
  106.    "Adress",
  107.    "Ticket_Rows",
  108.    "Ticket_Cols",
  109.    "Stake_Game",
  110.    "Stake_min",
  111.    "Stake_max",
  112.    "Charge_of_bet",
  113.    "FirstDateLos",
  114.    "FirstIDLos",
  115.    "DatabaseName",
  116.    "Sun",
  117.    "Mon",
  118.    "Tue",
  119.    "Wed",
  120.    "Thu",
  121.    "Fri",
  122.    "Sat",
  123.    "FileNamePrefix",
  124.    "FileNameExt",
  125.    "MoneySymbol",
  126.    "BonusGame",
  127.    "LargeIcon",
  128.    "PrintModul",
  129.    "PrintModulName",
  130.    "UpdateModul",
  131.    "UpdateModulName",
  132.    "Range2Game",
  133.    "Range2Nbrs",
  134.    "Range2Drawn",
  135.    "GameUrl",
  136.    "UpdateURL",
  137.    "AlternateURL",
  138.    "UseAlternateURL",
  139.    "BonusDraw",
  140.    "JsonPrint"
  141. ) SELECT
  142.    147,                 /* zamiast 148 wpisz unikalny numer nowej gry */
  143.    "Nbrs_All",
  144.    "Nbrs_Drawn",
  145.    "TicketPickMin",
  146.    "TicketPickMax",
  147.    "TicketPlaysMin",
  148.    "TicketPlaysMax",
  149.    'LittleLottoEven',   /* zamiast NewLittleLotto wpisz unikalną nazwę nowej gry */
  150.    "Country",          /* uwaga : nazwy wpisujemy ograniczone pojedynczym cudzysłowem 'nazwa', */
  151.    "State_city",
  152.    "Adress",
  153.    "Ticket_Rows",
  154.    "Ticket_Cols",
  155.    "Stake_Game",
  156.    "Stake_min",
  157.    "Stake_max",
  158.    "Charge_of_bet",
  159.    "FirstDateLos",
  160.    "FirstIDLos",
  161.    'LittleLottoEven',   /* zamiast NewLittleLotto wpisz unikalną nazwę bazy losowań nowej gry */
  162.    "Sun",                  /* uwaga : nazwy wpisujemy ograniczone pojedynczym cudzysłowem 'nazwa', */
  163.    "Mon",
  164.    "Tue",
  165.    "Wed",
  166.    "Thu",
  167.    "Fri",
  168.    "Sat",
  169.    "FileNamePrefix",
  170.    "FileNameExt",
  171.    "MoneySymbol",
  172.    "BonusGame",
  173.    "LargeIcon",
  174.    "PrintModul",
  175.    "PrintModulName",
  176.    "UpdateModul",
  177.    "UpdateModulName",
  178.    "Range2Game",
  179.    "Range2Nbrs",
  180.    "Range2Drawn",
  181.    "GameUrl",
  182.    "UpdateURL",
  183.    "AlternateURL",
  184.    "UseAlternateURL",
  185.    "BonusDraw",
  186.    "JsonPrint" FROM Games
  187.    WHERE ID=143;  
  188. /* Teraz tworzymy tabele losowań dla utworzonych wyżej gier */
  189.    
  190.    
  191. CREATE TABLE IF NOT EXISTS "LittleLottoEven" /* tu wpisujemy nazwę tabeli gry jak powyżej*/
  192. (
  193.    "_RecordID" AUTOINC NOT NULL,
  194.    "ID" SMALLINT NOT NULL,
  195.    "DATE" TIMESTAMP NOT NULL,
  196.    "L1" SMALLINT,
  197.    "L2" SMALLINT,
  198.    "L3" SMALLINT,
  199.    "L4" SMALLINT,
  200.    "L5" SMALLINT,
  201. PRIMARY KEY ("ID") COMPRESS NONE
  202. DESCRIPTION 'Baza parzystych będzie kopią losowań parzystych gry LittleLotto)'
  203. );
  204.  
  205. CREATE TABLE IF NOT EXISTS "LittleLottoOdd" /* tu wpisujemy nazwę tabeli gry jak powyżej*/
  206. (
  207.    "_RecordID" AUTOINC NOT NULL,
  208.    "ID" SMALLINT NOT NULL,
  209.    "DATE" TIMESTAMP NOT NULL,
  210.    "L1" SMALLINT,
  211.    "L2" SMALLINT,
  212.    "L3" SMALLINT,
  213.    "L4" SMALLINT,
  214.    "L5" SMALLINT,
  215. PRIMARY KEY ("ID") COMPRESS NONE
  216. DESCRIPTION 'Baza nie-parzystych będzie kopią losowań nie_parzystych gry LittleLotto)'
  217. );
  218.  
  219.  
  220.  DELETE LittleLottoEven WHERE 1; /* usuwamy dane z tabeli LittleLottoEven */
  221.  
  222.  INSERT INTO LittleLottoEven FIELDS ( /* Importujemy tylko losowania parzyste */
  223.    "ID",
  224.    "DATE",
  225.    "L1",
  226.    "L2",
  227.    "L3",
  228.    "L4",
  229.    "L5"
  230. ) SELECT
  231.    "ID",
  232.    "DATE",
  233.    "L1",
  234.    "L2",
  235.    "L3",
  236.    "L4",
  237.    "L5" FROM LITTLE_LOTTO
  238.    WHERE MOD("_RecordID",2)=0; /* tylko parzyste */
  239.    
  240.    
  241.   DELETE LittleLottoOdd WHERE 1; /* usuwamy dane z tabeli LittleLottoOdd */
  242.  
  243.  INSERT INTO LittleLottoOdd FIELDS ( /* Importujemy tylko losowania parzyste */
  244.    "ID",
  245.    "DATE",
  246.    "L1",
  247.    "L2",
  248.    "L3",
  249.    "L4",
  250.    "L5"
  251. ) SELECT
  252.    "ID",
  253.    "DATE",
  254.    "L1",
  255.    "L2",
  256.    "L3",
  257.    "L4",
  258.    "L5" FROM LITTLE_LOTTO
  259.    WHERE MOD("_RecordID",2)=1; /* tylko parzyste */
GeSHi © Codebox Plus
--
Wojtek
Audaces fortuna iuvat - śmiałym szczęście sprzyja
User avatar
Kmicic
Administrator
 
Posts: 720
Joined: 2006-11-28, 00:40
Location: Obywatel świata

Return to LottoCAD pytania i odpowiedzi

Who is online

Users browsing this forum: No registered users and 1 guest

cron