Autor Téma: Delphi 7 a pripojeni na MySQL server  (Přečteno 11916 krát)

Offline Kony

  • Plnoletý
  • ***
  • Příspěvků: 125
  • Karma: 1
    • Verze Delphi: Delphi 7
Re:Delphi 7 a pripojeni na MySQL server
« Odpověď #15 kdy: 14-04-2013, 12:25:45 »
tak tomuto se rika vysvetleni :)))) DEKUJI DEKUJI....

Jen toto nejde pouzit....

DBGrid1.Dataset.Filter vubec nezna... pokud dam tecku tak Dataset vubec nenabidne

zkusil jsem i

ZTable1.Filter := 'soukrome = 1';

to sice projde, ale kdyz zmacknu na button tak to nic neudela

protoze ZTable je pro me Dataset ne ???
« Poslední změna: 14-04-2013, 12:32:58 od Kony »

Offline Kony

  • Plnoletý
  • ***
  • Příspěvků: 125
  • Karma: 1
    • Verze Delphi: Delphi 7
Re:Delphi 7 a pripojeni na MySQL server
« Odpověď #16 kdy: 14-04-2013, 12:48:26 »
tak tomuto se rika vysvetleni :)))) DEKUJI DEKUJI....

Jen toto nejde pouzit....

DBGrid1.Dataset.Filter vubec nezna... pokud dam tecku tak Dataset vubec nenabidne

zkusil jsem i

ZTable1.Filter := 'soukrome = 1';

to sice projde, ale kdyz zmacknu na button tak to nic neudela

protoze ZTable je pro me Dataset ne ???



Tak uz

  ZTable1.Filter := 'soukrome = ''1''';
  ZTable1.Filtered := true;


Jeste se chci zeptat.. .co je to za akci kdyz dvakrat poklikam na radek v DBGridu ??? Chci nastavit ze kdyz poklikam na nejaky radek tak aby se mi otevrel novy formular na upravu
« Poslední změna: 14-04-2013, 14:42:10 od Kony »

Offline mjseven

  • Mladík
  • **
  • Příspěvků: 60
  • Karma: 5
    • Verze Delphi: D7, D2006, XE2, Lazarus
Re:Delphi 7 a pripojeni na MySQL server
« Odpověď #17 kdy: 14-04-2013, 23:09:48 »
2x klik = Double Click => OnDblClick

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 2651
  • Karma: 25
    • Verze Delphi: XE7 professional
Re:Delphi 7 a pripojeni na MySQL server
« Odpověď #18 kdy: 15-04-2013, 09:44:19 »
Mám tam chybu. Ale na tú si mohol prísť. Má byť

DBGrid.DataSource...
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Kony

  • Plnoletý
  • ***
  • Příspěvků: 125
  • Karma: 1
    • Verze Delphi: Delphi 7
Re:Delphi 7 a pripojeni na MySQL server
« Odpověď #19 kdy: 16-04-2013, 18:03:26 »
dobre dekuji vam vsem za cenne rady... editaci jsem vyresil pomoc druheho formu.... a pristup do DBGridu jsem zakazal, dal sjem ho jen read only... ale ted nastava otazka... jak pridat zaznam ??? a jeste jedna... kdyz mam vic radku v DBGridu, tak mi posun koleckem mysi funguje jen na aktualni obrazovce,, jako by nechtela scrolovat na dalsi zaznamy, ktery prave nejdou videt a jsou pod okrajem dbgridu

Takze pridani zaznamu mam vyreseny, na to jsem prisel a jeste to kolecko mysi aby slo

zkousel jsem tohle http://delphi.about.com/cs/adptips2002/a/bltip1102_3.htm ale nemuzu na DBGridu najit OnMessage
« Poslední změna: 16-04-2013, 19:13:29 od Kony »

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 2651
  • Karma: 25
    • Verze Delphi: XE7 professional
Re:Delphi 7 a pripojeni na MySQL server
« Odpověď #20 kdy: 17-04-2013, 08:22:07 »
S tým posúvaním obsahu kolieskom myšou je v D7 problém. Čosi som vytiahol z archívu.
Kód: Delphi [Vybrat]
  1.  Posun posuvníka a tabuľky zároveňtype   TMyDBGrid = class(TCustomDBGrid)  private    procedure WMVScroll(var Msg: TWMVScroll); message WM_VSCROLL;  ...  end;... procedure TMyDBGrid.WMVScroll(var Msg: TWMVScroll);begin if (Msg.ScrollCode=SB_THUMBTRACK)and(DataSource.DataSet.RecordCount<65536)   then       DataSource.DataSet.RecNo:=Word(msg.Pos)   else       inherited;end;

a
Kód: Delphi [Vybrat]
  1.  Skrolovanie myšou v DBGridalso possible with applicationevents from Henk SchreijFrom the tab 'Additional' put a (invisible) Component ApplicationEvents om the main-form. In the OnMessage event put:  procedure TForm1.ApplicationEvents1Message( var Msg: tagMSG; var Handled: Boolean); begin   if (Msg.message = WM_MOUSEWHEEL) and (Screen.ActiveForm.ActiveControl is TCustomDBGrid)  then begin   Msg.message:= WM_KEYDOWN;   Msg.lParam:= 0;    if Msg.wParam < 0 then    Msg.wParam:= VK_DOWN  else    Msg.wParam:= VK_UP;  end;end;   This bugfix will work in your whole Application.
Skús ten VirtualStringTree. Nebudeš mať také problémy.
 
Dočerta, prečo mi to likviduje všetky medzery?
« Poslední změna: 17-04-2013, 08:24:23 od Stanislav Hruška »
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Kony

  • Plnoletý
  • ***
  • Příspěvků: 125
  • Karma: 1
    • Verze Delphi: Delphi 7
Re:Delphi 7 a pripojeni na MySQL server
« Odpověď #21 kdy: 18-04-2013, 20:46:09 »
Tak uz snad posledni otazka.....


Mam sloupec v DBGridu "cislo" (2013-04-18) a cislo2 (2013-04-30) obe cisla jsou datumy.... dokazu odstranit pomlcky, takze mi vznikne cely cislo.... a to kdyz odectu tak bude nejaky vysledek... a potreboval bych aby vysledek pokud bude mensi jak 1000 tak aby se radek v DBGridu zabarvil do modra... pokud bude mensi jak 500 tak do zluta.. a pokud bude mensi jak 100 tak do cerveny.... je nejaka moznost jak toto docilit ???samozrejme myslim tim radek kde se tohoto pravidla tyka...

Offline mjseven

  • Mladík
  • **
  • Příspěvků: 60
  • Karma: 5
    • Verze Delphi: D7, D2006, XE2, Lazarus
Re:Delphi 7 a pripojeni na MySQL server
« Odpověď #22 kdy: 18-04-2013, 23:44:15 »
Jasně, jde to.

Musíš si napsat vlastní vykreslení buněk, což uděláš v ošetření události OnDrawColumnCell

Odečtení času bych osobně řešil v SQL dotazu a vracel si rovnou identifikaci barvy, nebo lépe řetězec (clBlue, ...) reprezentující barvu pro příslušný řádek.



Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 2651
  • Karma: 25
    • Verze Delphi: XE7 professional
Re:Delphi 7 a pripojeni na MySQL server
« Odpověď #23 kdy: 19-04-2013, 08:06:18 »
Dátum máš mať vždy a všade uložený ako dátum (Date/DateTime). Ináč to je veľká chyba! Dátumy sa dajú priamo sčítať a odčítať + iné priame funkcie na prácu s dátumom.

Spôsob/formát zobrazenia dátumu je úplne iná vec. Ak nechceš vyhodiť DBGrid, tak použi riešenie podľa mjseven.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Kony

  • Plnoletý
  • ***
  • Příspěvků: 125
  • Karma: 1
    • Verze Delphi: Delphi 7
Re:Delphi 7 a pripojeni na MySQL server
« Odpověď #24 kdy: 06-05-2013, 19:02:24 »
A mohl bych nejaky blizsi vysvetleni jak na to prijit teda pomoci SQL dotazu atd ????Ja bych rad to vsechno ulozil jako datum, ale uklada se mi to porad ve tvaru ROK/den/Mesic..... a to je mazec... chtel bych to den.mesic.rok


A jeste jedna otazka.... potrebuju abych mel na formulari nejaky CheckBox a RadioButton.... jak nastavit spravne MySQL aby me to dobre cetlo... potrebuju it jednu vec a to rozbalovaci menu a tam mit hodnoty, ktery muzu vybrat (PayPal, BU, Hotove, atd) a potom dalsi vec kde vyberu CheckBox kde vyberu polozky a to se mi ulozilo jejich zaskrknuti a potom RadioButton kde to bude to samy, zase aby se ulozilo jak to mam nastaveny...

Zacinam byt totalne nastvanej.. pridal jsem do MySQL dalsi polozku a snazim se ji pridat na formular a ani zaboha nemuzu docilit toho aby to editoval a ulozil, proste nic me to nepovoli do toho napsat.... masakr.. uz jsem snad vyzkousel vsehno

Tak ja uz fakt nevim... jeste jsem zkousel udelat uuplne cely propojeni s SQL databazi znovu aby tam byli vsechny radky tabulky a tedka kdyz neco v programu zmenim, tak se to nezmeni v SQL databazi..... vzdycky to natahne udaj z databaze, ale nepovoli ho zmenit
« Poslední změna: 07-05-2013, 07:14:02 od Kony »

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 2651
  • Karma: 25
    • Verze Delphi: XE7 professional
Re:Delphi 7 a pripojeni na MySQL server
« Odpověď #25 kdy: 07-05-2013, 10:20:13 »
Citace
A mohl bych nejaky blizsi vysvetleni jak na to prijit teda pomoci SQL dotazu atd?Ja bych rad to vsechno ulozil jako datum, ale uklada se mi to porad ve tvaru ROK/den/Mesic..... a to je mazec... chtel bych to den.mesic.rok

V DB musíš mať pole definované ako Date - DateTime + DateStamp či ako sa to volá.
Dátum sa v DB vždy ukladá ako celé číslo! Otázka zobrazenia je čosi iné. Záleží to na nastavení systému a komponentov pre prácu s DB
A
jeste jedna otazka.... potrebuju abych mel na formulari nejaky CheckBox a RadioButton.... jak nastavit spravne MySQL aby me to dobre cetlo... potrebuju it jednu vec a to rozbalovaci menu
Citace
Musíš používať komponenty pre prácu s DB. Poznáš to podľa toho, že v názve majú DB - TDBedit, TDBLookupComboX a pod. Ale RadioButton vo verzii DB neexistuje. Buď si miesto neho vymyslíš niečo iné, alebo si napíšeš funkciu na jeho obsluhu.
Tak ja uz fakt nevim... jeste jsem zkousel udelat uuplne cely propojeni s SQL databazi znovu aby tam byli vsechny radky tabulky a tedka kdyz neco v programu zmenim, tak se to nezmeni v SQL databazi..... vzdycky to natahne udaj z databaze, ale nepovoli ho zmenit
Citace
MySQL nepoznám, ale základné pravidlá sú pre všetky DB rovnaké- zmena údajov Edit/Insert- uloženie údajov Post- odvolanie zmien CancelPozor v DB komponentoch na voľbu AutoEdit. Osobne ju vždy vypínam.Dobre si pozri vlastnosti v DBDataset-e. Aj pre jednotlivé polia! To je preberané jednotlivými komponentami určenými na priamu prácu s údajmi ako TDBEdit. A potom si prejdi aj TDataSource.Samostatne k tomu si musíš dobre preštudovať každý komponent pre priamu prácu s údajmi.


Poznámka k formátovaniu textu.
Už ma nebaví zakaždým opravovať formátovanie. Pri písaní to mám dobre a po uložení to nepoznám. Vyhádzané všetky riadkovania + iné lahôdky. A to mám čerstvo preinštalovaný OS a momentálne používam maxthon!
« Poslední změna: 07-05-2013, 10:23:37 od Stanislav Hruška »
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Kony

  • Plnoletý
  • ***
  • Příspěvků: 125
  • Karma: 1
    • Verze Delphi: Delphi 7
Re:Delphi 7 a pripojeni na MySQL server
« Odpověď #26 kdy: 08-05-2013, 12:23:07 »
Tak uz jsem tak nejak zase postopuil a zacalo me to fungovat jak ma...

ALE :))))

mam DBGrid kde dvojklikem na radek se otevre Form na editaci tohoto radku... vyplnim vsechno potrebne a mam jeste udelany aby pri zavreni tohoto Formu se hodil fokus na prvni polozku, aby se to poslalo do DBGridu, ale pokud na DBGrid nekliknu na dalsi radek tak se mi udaje neposlou do SQL databaze... zjistil jsem, ze kdyz Form s editaci zavru tak DBGrid vlastne zustava v editacnim modu a jakmile vyberu jinaci radek tak se to hnedka ulozi... tak bych se chtel zeptat, jak udelat aby se mi pri zavreni Form(editace) hodil fokus treba na prvni radek DBGridu.... zkousel jsem to takto
hlavni FOrm kde je DBGrid2 je Form1 a editacni formular je Form6

na Close.Form6
Form1.DBGrid2.column[1].row[1].setfocus

ale to okamzite hlasi chybu ze nezna DBGrid2 na formu6

pak jsem zkusil

Form1.DBGrid2.SelectedRows.Items[1];

ale taky konec s chybou "List index out of Bounds (1)"

a jeste jedna vec :

kdyz vyvoalvam vytvoreni noveho zaznamu pomoci :

  Form1.Ztable1.Append;
  Form7.ShowModal;

mam na formulari ID a to je DBEdit a potreboval bych abych nejakym prikazm zjistil jaky je posledni cislo v SQL a automaticky se mi pridalo +1
« Poslední změna: 08-05-2013, 13:14:22 od Kony »

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 2651
  • Karma: 25
    • Verze Delphi: XE7 professional
Re:Delphi 7 a pripojeni na MySQL server
« Odpověď #27 kdy: 08-05-2013, 13:18:16 »
Citace
zjistil jsem, ze kdyz Form s editaci zavru tak DBGrid vlastne zustava v editacnim modu
A použil si tam Post?
Vypol si AutoEdit?


Ja sa v tabuľke pohybujem  Dataset.Locate(...); DBGrid na to bude automaticky reagovať.

Citace
mam na formulari ID a to je DBEdit a potreboval bych abych nejakym prikazm zjistil jaky je posledni cislo v SQL a automaticky se mi pridalo +1

O ID sa musí starať samotná DB. Každá iná technika povedie len k problémom. Ale mySQL nepoznám. Neporadím.
« Poslední změna: 08-05-2013, 13:21:46 od Stanislav Hruška »
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Kony

  • Plnoletý
  • ***
  • Příspěvků: 125
  • Karma: 1
    • Verze Delphi: Delphi 7
Re:Delphi 7 a pripojeni na MySQL server
« Odpověď #28 kdy: 08-05-2013, 13:25:29 »
jak to myslis pouzit Post ???

Pokud vypnu v DBGridu AutoEdit, tak me potom nejde editovat zaznamy

Takze Post uz jsem vyresil :))))) super....

Ted uz jen poresit aby se mi upravovalo spravne ID..... at zkousim co zkousim tak pri pridani zaznamu je vzdy policko ID prazdny a musim ho doplnit manualne

Nebo proste nacist posledni cislo v radku DBGrid ve sloupci ID(sloupec1) a pricist k tomu +1
« Poslední změna: 08-05-2013, 14:15:36 od Kony »

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 2651
  • Karma: 25
    • Verze Delphi: XE7 professional
Re:Delphi 7 a pripojeni na MySQL server
« Odpověď #29 kdy: 08-05-2013, 14:51:57 »
Ako som písal predtým. ID Ti MUSÍ generovať samotná DB. Pozri si návod. Nikdy naň nesmieš siahať. Rozbiješ si integritu údajov a budeš plakať.

Poznám len access a FireBird.
- Prvý si to robí automaticky.
- Druhý má generátory (Generator) a spúšte (Trigger). Robí sa to pomocou nich.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

 

S rychlou odpovědí můžete používat BB kódy a emotikony jako v běžném okně pro odpověď, ale daleko rychleji.

Upozornění: do tohoto tématu bylo naposledy přispěno před 120 dny.
Zvažte prosím založení nového tématu.

Jméno: E-mail:
Ověření:
Kolik je šest plus čtyři (slovem):