Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Visual basic - posílání dat a SQL

Zdravim,
Tvořím program ve visual basic 2008, který by měl automaticky odesílat data (např. obrázky) na email a chtěl bych, aby když by se zapnul program (po restartováni PC) neodesílal obrázky, které už odeslal, tedy přišel jsem k názoru, že by mi mohl pomoct SQL a tady nastal problém, že se SQL vůbec nemám zkušenosti, tedy chtěl bych vás poprosit o radu jak na to, díky.

Předmět Autor Datum
Ahoj. Databáze tvoří "samostatný mechanismus", navržený ke správě velkých objemů dat. Vzhledem k tom…
Flash_Gordon 03.12.2011 20:49
Flash_Gordon
Jo o tom jsem měl taky takový obrázek :D, ale teď jen doufám, že na to příjdu brzo, protože vůbec ne…
xtroff 03.12.2011 21:02
xtroff
"kod" je u teba co? prva vec je ze musis mat nejaky SQL server (nainstaleny apod, existuje nejaky od…
MM.. 03.12.2011 21:08
MM..
BTW. ina moznost (podla mna jednoduchsia) je nepouzivat SQL ale drzat si zoznam poslanych obrazkov n…
MM.. 03.12.2011 21:10
MM..
... tym googlom najdes napr. acctut14.htm mozes studovat (vsetkych 5 kapitol tam). Je to myslim pres…
MM.. 03.12.2011 21:13
MM..
Záleží od konkrétnych podmienok, ale bežne sa takéto veci riešia jednoducho tak, že po uploadnutí te…
los 03.12.2011 22:27
los
Díky hodně z toho co jste mi tu napsali se mi hodí, aspoň mám nějaký vodítka, ale mimochodem kdybych…
xtroff 03.12.2011 22:44
xtroff
Reťazec nemusíš nahrávať do textboxu, stačí ho porovnať v pamäti. Najprv si načítaš celý obsah súbo…
los 03.12.2011 22:52
los
ok, s tímhle si snad už poradím, tak děkuji poslední
xtroff 03.12.2011 23:14
xtroff

Ahoj.
Databáze tvoří "samostatný mechanismus", navržený ke správě velkých objemů dat.
Vzhledem k tomu, že všechny programy pracují s daty, není neobvyklé, že i databáze by se dala využít :-).

Obecný princip je ten, že program obrží data, která má odeslat.
Tato data by si asi měl program někam zaznamenat a při odeslání každé položky si u ní zapsat "příznak", že položka již byla zpracována (odeslána).
Úlohou příznaku je, aby v budoucnosti program již takovou položku neposílal.

Velkým pomocníkem při práci s databází bude google.

Tak jsem se vykecal :-D.

"kod" je u teba co?
prva vec je ze musis mat nejaky SQL server (nainstaleny apod, existuje nejaky od MS, existuje free mySQL, existuju platene).

druha vec je vediet poslat nejaky SQL prikaz (to sa posiela ako text) SQL serveru. To si najdi googlom ze jak sa robi vo visual basicu, alebo na MSDN.microsoft.com si to najdi, maju tam aj hladanie. visual basic je to najposlednejsie co zdraveho jedinca zaujima tak sa mi to nechce hladat sorry :)

tretia vec je vytvorit si nejaku databazu a tabulku v SQL serveri.
a nakoniec stvrta vec je nastudovat si samotne SQL prikazy (syntax a co robia). Neni ich vela vpodstate potrebujes hlavne SELECT a INSERT. takze www.google.com sql select alebo sql insert, pripadne si k tomu daj aj slova visual basic, a studovat.

Záleží od konkrétnych podmienok, ale bežne sa takéto veci riešia jednoducho tak, že po uploadnutí ten súbor presunieš do iného adresára. Výhodou je, že nepotrebuješ databázu a okamžite vie hocikto povedať, čo bolo odoslané a čo na odoslanie ešte len čaká.

Ak neprichádza presun súborov do úvahy, tak ďalšou možnosťou na zváženie je rozhodovať sa podľa vlastností súboru. Ak máš napr. garantované, že súbory na odoslanie budú mať čas vytvorenia vzostupný, tak ti stačí ukladať si niekam do súboru len čas posledného odoslania. Prípadne ak máš tie súbory nejako vzostupne pomenované, tak si môžeš ukladať do súboru len názov posledného odoslaného súboru. Alebo môžeš využiť archive flag, ktorý budeš nastavovať podľa toho, či už bol uploadnutý alebo nie. Alebo môžeš ku každému súboru vytvoriť pomocný súbor s príponou napr. .uploaded. V každom prípade by si mal takéto pokročilé využitie vlastností súborového systému poriadne zdokumentovať. :-)

Ak si potrebuješ pamätať odoslanie o každom súbore, tak budeš musieť použiť databázu. Môžeš použiť buď jednoduchý textový súbor, embedded databázu, alebo serverové riešenie. Ak je súborov málo, stačí ti už spomenutý textový súbor. Ak je ich veľa alebo si k nim potrebuješ ukladať ďalšie informácie, môžeš využiť embedded databázu. Ak k tým informáciám potrebuje pristupovať aj nejaký iný program, využiješ serverové riešenie.

Díky hodně z toho co jste mi tu napsali se mi hodí, aspoň mám nějaký vodítka, ale mimochodem kdybych se rozhodl jít cestou, že by se to ukládalo do texťaku nebo jiného typu tak nevim jak to z toho vyhledat, dejme tomu že je to udělané takto...Do textbox1 se načte název souboru - a teď ten název se má porovnávat s textbox2 který bude postupně zobrazovat řádek po řádku přečtených z daného textového souboru dokud se tyto dva textboxy neshodnou, tedy ptám se jak udělat, aby ten textbox2 četl řádek po řádku z toho daného textového souboru. Jinak jestli je lepší řešení...
Nejsem v tom moc znalej...
Dík

Reťazec nemusíš nahrávať do textboxu, stačí ho porovnať v pamäti.

Najprv si načítaš celý obsah súboru do pamäte pomocou ReadAllText, následne ho rozdelíš podľa riadkov pomocou Split a uložíš si to do slovníka pomocou ToDictionary. Potom otestovanie, či už bol odoslaný, bude spočívať v jednoduchom zavolaní metódy ContainsKey.

Počas uploadovania budeš do toho slovníka pridávať pomocou Add názvy súborov a nakoniec hodnoty Keys spojíš pomocou Join a to uložíš späť do toho súboru pomocou WriteAllText.

Ak to chceš spúšťať automatizovane, tak zabudni na GUI aplikáciu a sprav to ako konzolovú aplikáciu, prípadne ako systémovú službu.

Zpět do poradny Odpovědět na původní otázku Nahoru