Aloitetaan SQLite3 - Peruskomennoista. sqlite-moduuli - Työskentely tietokannan kanssa. Työskentely tietokannan kanssa

Tietyssä valokuvapankeissa työskentelyn vaiheessa jokaisella mikrovarastoilijalla on kysymys: "Kuinka ja mistä nostaa rahaa mikrovarastosta?" Kysymys on varsin järkevä, varsinkin IVY-maiden mikrovarastoja varten. Useimmat valokuvapankit tarjoavat vaihtoehtoja ansaittujen rahojen siirtämiseen Paypal- ja Moneybookers-maksujärjestelmien tileille. Venäjältä ja muista entisistä neuvostotasavalloista tulevat mikrovarastot eivät voi tätä rajoitusten vuoksi tehdä maksujärjestelmä tietyntyyppisiin operaatioihin. Siksi sinun on käytettävä Moneybookersin maksujärjestelmää rahan nostamiseen mikroosakkeista. Nykyään tästä maksujärjestelmästä on tullut yksi nopeimmista ja optimaalisista vaihtoehdoista tulojen vastaanottamiseen valokuvapankeista, tästä syystä esitän huomionne yleiskatsauksen tämän järjestelmän kanssa työskentelemisestä. Tämän päivän postauksessa yritän puhua siitä, millainen peto Moneybookers-maksujärjestelmä on. kuinka rekisteröityä Moneybookersille ja miten sen kanssa pääsee alkuun.

Mikä on Moneybookers-järjestelmä?

Moneybookers on Isossa-Britanniassa rekisteröity sähköinen maksujärjestelmä. Moneybookers on hyvin samanlainen kuin yleisempi maksujärjestelmä Paypal, mutta samalla se eroaa suotuisasti siinä, että Moneybookers, toisin kuin Paypal, toimii useimpien Itä-Euroopan maiden kanssa, mukaan lukien IVY. Kansainvälinen maksujärjestelmä Moneybookers tarjoaa mahdollisuuden kiireellisiin talletuksiin ja kotiutuksiin. Nykyään Moneybookers-maksujärjestelmä on ihanteellinen vaihtoehto nopea kuitti valokuvapankeista ansaitut rahat. Kaavamaisesti varojen nosto on melko yksinkertaista: he lähettävät rahasi Moneybookers-maksujärjestelmässä määrittämällesi tilille, ja siellä näitä rahoja kertyy, kunnes tilaat näiden rahojen siirron järjestelmästä valuuttapankkitilillesi tai maksukortti Visa järjestelmät. Rahansiirto Visa-maksukortille tapahtuu välittömästi, mutta kestää vielä 3-4 arkipäivää ennen kuin pankkisi vahvistaa tämän toimenpiteen. Jos tilaat pankkitilillesi, tällainen siirto kestää 4–14 päivää asuinmaasta riippuen. Voit myös käyttää Moneybookers-maksujärjestelmän tililläsi olevia rahoja tehdäksesi ostoksia Internetissä (voit maksaa ostoksia 40 000 verkkokaupassa tilisi kautta järjestelmässä) tai siirtää rahaa jonkun muun maksussa olevan henkilön tilille. järjestelmä. venäjänkielisiä käyttäjiä He kutsuvat maksujärjestelmää Moneybookersiksi - bookers.

Moneybookers () -maksujärjestelmän luotettavuudesta voidaan selvästi todistaa se, että maksujärjestelmä on brittiläisen finanssivalvontapalvelun FSA:n tiukassa valvonnassa ja siihen sovelletaan tiukimpia lisensoituja koskevia sääntöjä ja määräyksiä. rahoituslaitokset. Lisäksi Moneybookers-maksujärjestelmä toimii eräänlaisena tietojesi turvana: voit suorittaa kaikki rahoitustapahtumat tämän maksujärjestelmän kautta, joka on lisensoitu pankkilaitos, käyttämällä olemassa olevaa sähköpostiosoitettasi ja salasanaasi paljastamatta tietojasi. henkilökohtaiset tilitiedot kolmannelle osapuolelle.

Maksujärjestelmä teki vähän aikaa sitten venäjänkielisen version palvelustaan, joten Moneybookersin rekisteröityminen ei aiheuta ongelmia. Päällä Tämä hetki Moneybookersin rekisteröitymisessä on vain kaksi estettä - olet alle 18-vuotias tai asut maassa, joka ei ole halukas tekemään yhteistyötä kansainvälisen yhteisön kanssa rahanpesun torjunnassa.
Rekisteröityäksesi Moneybookersiin sinun on mentävä maksujärjestelmän verkkosivustolle käyttämällä tätä linkkiä: ja valitsemalla Venäjänkielinen käyttöliittymä(jos sitä ei ole valittu oletuksena) ja napsauta sitten " Rekisteröinti"tai" Rekisteröidy”:

Seuraavalla sivulla, napsautettuasi painiketta, sinun on syötettävä:

  • sähköpostiosoitteesi (rekisteröinnin päätyttyä tämä on kirjautumistunnuksesi ja tilitunnuksesi). Moneybookers-järjestelmän tiliosoite näyttää tavalliselta sähköpostiosoitteelta, esimerkiksi [email protected]. Linkki tilisi vahvistamiseksi lähetetään tässä kentässä määritettyyn sähköpostiin. Moneybookersissa sinulla voi olla viisi sähköpostiosoitetta, jotka on liitetty tiettyyn tiliin (yhden niistä on oltava ensisijainen). Sitten voit myös vastaanottaa siirtoja kuhunkin lisäpostiosoitteeseen. Jokainen sähköpostiosoite on myös vahvistettava Moneybookersissa etukäteen. Muuten, joskus on tilanteita, joissa jotkin maksujärjestelmän tiliin linkitetyt osoitteet eivät enää toimi ja sinun on vaihdettava ne, jolloin voit poistaa tarpeettomat lähettämällä erityispyynnön "Sähköpostituki" -valikon kautta, jossa ilmoitetaan poiston syy. ja hetken kuluttua pääosoitteeseen Saat valmiusviestin.
  • Salasana. Siinä on oltava vähintään 6 merkkiä, joista vähintään yhden on oltava ei-aakkosmerkki. Muuten, kun myös astut sisään yksinkertainen salasana järjestelmä pyytää sinua syöttämään monimutkaisemman.
  • Asuinmaa. Voit valita maan luettelosta. Jos et löydä maatasi luettelosta, se tarkoittaa, että et voi tällä hetkellä työskennellä Moneybookersin kanssa.
  • valuutta. Sinun on valittava tilisi valuutta. Työskennelläksesi valokuvapankkien kanssa on parasta valita Yhdysvaltain dollari.
    Huomio! Kun olet valinnut tilin valuutan ja tehnyt tilille vähintään yhden toimenpiteen, et voi enää muuttaa tilin valuuttaa järjestelmässä. Useamman kuin yhden tilin avaaminen maksujärjestelmässä on kielletty. Jos havaitaan käyttäjä, jolla on kaksi tai useampi tili, käyttäjä estetään, eikä hän voi vastaanottaa jäljellä olevia varoja.
  • mieltymyskieli. Täällä voit valita kielen, jolla Moneybookers-verkkosivusto näytetään oletusarvoisesti (se voidaan muuttaa myöhemmin) ja virallisen kirjeenvaihdon.
  • vahvistusnumero tai captcha - aakkosnumeerinen koodi tämän kentän vieressä olevasta kuvasta.
  • Oletko syöttänyt tiedot? Oletko tarkistanut? Jos kaikki on oikein, napsauta "seuraava"-painiketta ja odota kirjettä Monibookersilta. Päällä postitusosoite, jonka määritit rekisteröityessäsi Moneybookersiin, saat sähköpostin, jossa on linkki tilisi aktivointiin. Lähetetty vahvistuslinkki on voimassa 24 tuntia. Napsauttamalla tätä linkkiä sinut ohjataan sivulle, jolla voit jatkaa rekisteröitymistä Moneybookersissa. Tällä sivulla sinun tulee täyttää useita kenttiä henkilötiedoillasi. Jatkossa "Profiili"-tilivalikossa voit vaihtaa asuinkadun, kaupungin, kaupunginosan, postinumeron, maan. Voit kuitenkin muokata yhteystietojasi tililläsi vain kerran 90 päivässä.
    Sinun on syötettävä henkilötietosi latinalaisin kirjaimin ( englanninkielisillä kirjaimilla) välttää lisää ongelmia. Suosittelen syöttämään tiedot samalla tavalla kuin ne on painettu passiisi. Jos tämä ei ole mahdollista, yritä syöttää tiedot järjestelmään samalla tavalla kuin syötit ne rekisteröityessäsi valokuvapankkeihin. Haluaisin huomauttaa, että sinun on tulevaisuudessa annettava syntymäaikasi joka kerta, kun teet nostoja Moneybookersista, jotta voit verrata sitä rekisteröinnin yhteydessä annettuun päivämäärään. Lisäksi maksujärjestelmä säännöissään edellyttää, että tili tai luottokortti, jolla nostetaan rahaa Moneybookersista, on avattava samalla nimellä, jonka määritit rekisteröityessäsi Moneybookersille.
    Kun olet täyttänyt kaikki ehdotetut kentät ja tarkistanut niiden oikeellisuuden muutaman kerran, napsauta "seuraava" ja vahvista rekisteröitymisesi Moneybookersille. Rekisteröityminen Moneybookersilla on valmis! Välittömästi vahvistuksen jälkeen voit jo vastaanottaa rahat kokonaan Moneybookers-tilillesi (älä unohda, että kuvapankin tiliasetuksissa sinun tulee ilmoittaa Moneybookersin maksutapa ja rekisteröidä järjestelmään tilitunnuksena käytetty sähköposti ).
    Muuten, varojen vastaanottamisesta valokuvapankeista Moneybookers-tilillesi ei peritä palkkioita ja se on täysin ilmaista.
    Puhun rahan nostamisesta järjestelmästä, tariffeista ja maksujärjestelmän tukipalvelusta tämän Moneybookers-artikkelin jatkossa lähitulevaisuudessa.

    Yhä useammat valokuvapankit suorittavat maksuja valokuvaajille ja kuvittajille Moneybookers-maksujärjestelmän avulla. Useimpien IVY-maiden asukkaille se on nykyään yksi nopeimmista ja kätevimmistä tavoista saada ansaittuja varoja.

    Tässä artikkelissa yritän kertoa sinulle, kuinka rekisteröidyt ja aloitat Moneybookersin käytön. Siitä kannattaa varmaan aloittaa yleisiä käsitteitä ja määritelmät...

    Mikä on Moneybookers?

    Moneybookers on elektroninen maksujärjestelmä (UK), joka on monella tapaa samanlainen kuin yleisempi Paypal, mutta toisin kuin jälkimmäinen, se toimii useimpien Itä-Euroopan maiden kanssa. Moneybookers on ihanteellinen tapa saada nopeasti rahaa, joka on ansaittu valokuvapankeista. Kotiutusjärjestelmä on melko yksinkertainen - valokuvapankit siirtävät rahasi Moneybookers-tilillesi, jossa niitä kertyy, kunnes päätät siirtää ne valuuttatilillesi tai luottokortillesi (Visa). Asuinmaasta riippuen summien siirto pankkitilillesi kestää 2-5 arkipäivää, siirto Visa-luottokortille on välitön.

    Moneybookersilla voit myös tehdä ostoksia verkossa tai siirtää rahaa toiselle.

    Kuinka rekisteröityä Moneybookersille?

    Äskettäin Moneybookers on venäläistänyt palveluaan, eikä rekisteröintimenettely aiheuta ongelmia. Moneybookersin rekisteröitymisessä on vain kaksi estettä - olet alle 18-vuotias tai asut maassa, joka ei ole halukas tekemään yhteistyötä kansainvälisen yhteisön kanssa rahanpesun torjunnassa.

    Joten mene Moneybookersin verkkosivustolle, valitse venäjän kieli (jos se ei ole valittuna oletusarvoisesti) ja napsauta "rekisteröinti"-painiketta. Rekisteröityessäsi ensimmäisellä sivulla sinua pyydetään ilmoittamaan:

    • Sähköpostiosoitteesi (jatkossa tämä on kirjautumistunnuksesi ja tilitunnuksesi),
    • Salasana (vähintään 6 merkkiä, joista vähintään yksi ei saa olla kirjain)
    • Asuinmaa (valinta luettelosta; jos maasi ei ole luettelossa, se ei ole kohtalo...)
    • Valuutta, jolla haluat ylläpitää tiliä työskentelyä varten valokuvapankkien kanssa (valitse Yhdysvaltain dollari)
    • Ensisijainen kieli (kieli, jolla sivusto ja virallinen kirjeenvaihto näytetään)
    • Varmistusnumero (aakkosellinen koodi kentän vieressä olevasta kuvasta)

    Napsauta "seuraava" ja Moneybookers lähettää sähköpostin, jossa on aktivointilinkki määrittämääsi osoitteeseen. Tämä linkki on voimassa 24 tuntia. Napsauttamalla sitä siirryt seuraavalle rekisteröintisivulle, jossa sinun on myös täytettävä useita kenttiä henkilötiedoilla. Huomaa, että sinua pyydetään syöttämään syntymäaikasi jokaisen nostotoimenpiteen aikana ja vertaamaan sitä rekisteröinnin yhteydessä annettuun päivämäärään. Lisäksi Moneybookers edellyttää, että tilillä tai luottokortilla, jolta nostat rahaa, on oltava sama nimi, jonka annoit rekisteröityessäsi.

    Kun olet täyttänyt kaikki vaaditut kentät, napsauta "seuraava" ja vahvista rekisteröinti. Välittömästi rekisteröitymisen jälkeen voit jo saada rahaa Moneybookers-tilillesi (tietysti, jos olet valinnut Moneybookers-maksutavan valokuvapankeissa ja määrittänyt Moneybookers-tilitunnustasi vastaavan sähköpostin). Moneybookers ei veloita palkkioita valokuvapankeista tulevien tilisiirtojen vastaanottamisesta.

    Kuinka siirtää rahaa Moneybookersista valuuttatilillesi?

    Ensinnäkin, jos haluat nostaa rahaa Moneybookersista, sinun on avattava valuuttatili Yhdysvaltain dollareina missä tahansa sinulle sopivassa pankissa. Voit jopa avata tilin Venäjän Sberbankissa, mutta tässä tapauksessa tilin vahvistusmenettely muuttuu monimutkaisemmaksi. Joten sinulla on valuuttatili, joten sinun on nyt rekisteröitävä tämä tili Moneybookersissa. Tätä varten tarvitset pankkisi tilinumeron ja SWIFT-koodin (SWIFT-koodi on Bank Identification Code, löydät sen pankin verkkosivuilta tai kysy itse pankista). Mene Moneybookersin verkkosivustolle (tilisi) ja napsauta "nosta rahaa". Napsauta näkyviin tulevassa ikkunassa "Pankki"-kentän vieressä "Hallinnoi" ja lisää uusi pankki. Syötä vaihe vaiheelta SWIFT ja 20-numeroinen tilinumero (Sberbank-tilinumerossa emme ilmoita numeroita kauttaviivan jälkeen).

    Nyt tili on tarkistettava, jotta voit nostaa rahasi ilman rajoituksia ja Moneybookers voi nukkua rauhassa ilman pelkoa, että niitä käytetään rahanpesuun. Tilin vahvistaminen koostuu ensimmäisestä 15-20 dollarin testisiirrosta pankkitilillesi (sinulta veloitetaan 2,28 dollarin siirtomaksu). Siirron rahojen mukana saat vahvistuskoodin, joka sinun on selvitettävä pankista itse. Koodin saaminen pankissa on valitettavasti pankkivirkailijoiden "ammattimaisuuden" vuoksi tylsin askel, mutta onneksi tämä ei tarvitse tehdä kuin kerran. Säästä aikaasi ja hermojasi kertomalla pankin työntekijöille, että sinun on etsittävä tarvitsemasi koodi maksun tekstistä (Swift-viestistä) 70 alkavalta riviltä, seuraava rivi on seuraava: VRF CODE ****** MONEYBOOKERS. Se, mikä kirjoitetaan tähtien sijaan, on vaadittu vahvistuskoodi.

    Sinua pyydetään antamaan saamasi vahvistuskoodi Moneybookers-verkkosivustolla, kun seuraavan kerran siirrät rahaa pankkitilillesi. Koodi on voimassa 45 päivää testisiirron päivämäärästä, joten älä lykkää varmentamisen suorittamista myöhemmäksi, jotta pankkimatka ei toistuisi.

    Jos olet avannut valuuttatilin Venäjän Sberbankin konttorissa, vahvistusmenettely muuttuu monimutkaisemmaksi, koska "swift-kortit" eivät saavuta konttoreja, eivätkä ne yksinkertaisesti pysty antamaan sinulle vahvistuskoodia fyysisesti. Tässä tapauksessa sinun on lähetettävä osoitteeseen [sähköposti suojattu] kirje, jossa pyydetään vahvistamaan tilisi (mahdollisesti venäjäksi). Kirjeessä on oltava skannattu kuva virallisesta henkilöllisyystodistuksesta (passi tai ajokortti) ja skannattu äskettäinen lasku kaikista palveluista, jotka sisältävät postiosoitteesi (esimerkiksi kuivapesukuitti). Tämän jälkeen saat vastauksen onnistuneesta tilin vahvistamisesta ja sinulle asetetun rajan määrästä.

    On toinenkin tapa nostaa rahaa Moneybookersista – siirtää suoraan luottokortille. Tämä menetelmä on yksinkertaisin, mutta tätä varten sinulla on oltava VISA tai VISA electron luottokortti, jossa on CCV-koodi takapuoli kortit. Vahvistaaksesi kortin Moneybookersissa sinua pyydetään syöttämään sen tiedot, ja sitten he tekevät automaattisen mikrosiirron siitä Moneybookersille (noin 3 dollaria). Tämän jälkeen sinun on otettava tiliote pankkiautomaatista viimeisimmät tapahtumat kortilla (monet pankit antavat sinun saada nämä tiedot Internet-pankkijärjestelmänsä kautta) ja syötä Moneybookersiin tarkka summa, jonka Moneybookers nosti kortiltasi. Ja siinä kaikki, voit nostaa rahasi Moneybookersista suoraan kortillesi.

    Mitkä valokuvapankit siirtävät rahaa Moneybookersille?

    Nykyään ansaitsemasi rahat voidaan siirtää Moneybookersille seuraavien valokuvapankkien kautta:

    • Shutterstock (minimi nostosumma alkaen 75 dollaria)
    • iStockphoto (alkaen 100 dollaria)

    Kun luodaan ohjelmia, jotka käyttävät yhtä tai useampaa tietokantataulukkoa ja (tai) tietokantataulukoita vaatii vain yksi sovellus (rajallinen määrä sovelluksia), sovellusta ylläpidettäessä on varsin hankalaa seurata tietokantojen kanssa työskentelyä varten tarvittavan asiakasohjelmiston asennusta. , tee tarvittavat asetukset, päätä tietoturvakysymyksistä jne. jne.

    Borland C++ Builderissa (Borland Delphi) voit käyttää tällaisiin tilanteisiin TClientDataSet-komponenttia, jonka avulla voit luoda tietokantataulukoista (Paradox, DB) tiedoston, jota voidaan sitten käyttää sovelluksessa samalla tavalla kuin tietokantaa. pöytä. TCLientDataSet-komponentti itsessään mahdollisti myös tiedoston lataamisen jälkeen todellisesta tietokantataulukosta unohtaa hetkeksi tietojen käyttöpalvelimen ja työskennellä vain tämän tiedoston kanssa (suorita mahdolliset muokkaukset) ja sovelluksen viimeistelyvaiheessa tai vaiheen tarve julkaista tiedot, siirtää tarvittavat tiedot todelliseen tietokantataulukkoon.

    Visual Studio Net ei käytä tällaista mekanismia. Mutta kaikki, mitä TCLientDataSet-komponentti salli, voidaan tehdä siinä samalla menestyksellä monilla muilla tavoilla. Olen jo puhunut kirjassani osiossa "XML-tiedostojen kanssa työskentely Visual Studio NETissä" mahdollisuudesta käyttää XML-tiedostoja tähän tarkoitukseen ja osiossa "Työskentely tietokantojen kanssa Visual Studiossa" mahdollisuudesta ladata tietoja tietokantataulukot DataSetiksi ja päinvastoin tietojen tallentamiseen. Lisäksi .Net-työkalujen avulla voit työskennellä suoraan Access-tietokantatiedostojen kanssa.

    Mutta kuten näemme, yksinkertaisin tehtävä toteutetaan SQLiten avulla. Mikä antaa sinulle oikeuden sanoa näin?

      Käyttäjän näkökulmasta SQLite on yksi tiedosto levyllä. Tämä tiedosto ei vaadi kolmannen osapuolen prosessien käynnistämistä, DBMS:n tai ylimääräisten hallintatyökalujen käyttöä sen käyttöön.

      Vaihtoprotokollan tarjoavat SQLite-kirjastojen funktiokutsut (API) (kirjastot vievät hieman yli 500 kb muistia), mikä ei vaadi ohjelmoijalta lisätietoa tietokantarakenteesta ja vuorovaikutuksen organisoinnin erityispiirteistä. SQLite-moottori ja sen käyttöliittymä on toteutettu yhdessä kirjastossa.

      Microsoft Visual Studiossa työskentelevä C#-ohjelmoija ei vaadi lisätietoa varmistaakseen, että tiedonvaihto tapahtuu samoilla kielen komponenteilla ja toiminnoilla.

      Tietokannan käyttöönotossa ja siirtämisessä tietokoneesta toiseen ei ole ongelmia. Itse tietokanta voidaan toimittaa sovelluksen mukana, ja muut käyttäjät voivat kopioida sen vastaaviin ohjelmiin.

    Ja silti SQLitea voidaan kutsua upotettavaksi suhteellinen perusta tiedot:

      Ensinnäkin, kuten MySQL ja PostgreSQL (verrataan pieniin tietokantoihin), se toteuttaa SQL 92 -standardin perusominaisuudet (mukaan lukien triggerit ja tapahtumat), ja monien mielestä se ylittää PostgreSQL:n ominaisuuksiltaan ja tietojenkäsittelyssä. nopeudella se ylittää molemmat nämä perusteet.

      SQLite tukee jopa 2 teratavun tietomääriä, ja tietueen kokoa (käytettäessä BLOB-kenttiä) rajoittaa vain tietokoneen muisti.

      Pieni, mutta melko riittävä useimpiin tehtäviin tietotyyppien lukumäärä on tuettu.

    Yksinkertaisuus asettaa kuitenkin myös rajoituksia. Sinun on uhrattava tietyt suurille tietokannoille ominaiset ominaisuudet ja ennen kaikkea prosessien rinnakkaisuus, runsaasti sisäänrakennettuja kirjastotoimintoja, SQL-kielistandardin pieni rajoitus ja joitain muita ominaisuuksia. Mutta tämä ei estä SQLite for:n yhä laajempaa käyttöönottoa sovellusohjelmia pienillä tietokannoilla, sovelluksilla, jotka eivät vaadi tietokannan hallintaa, väliaikaisen tietokannan luomiseen sovellusten ollessa käynnissä, pääsy- ja salasanatietokanta pienissä Web-portaaleissa ja moniin muihin tarkoituksiin.

    Kappale 1. SQLiten käytön perusteet

    varten SQL:n avulla C#-ohjelmissa voit käyttää kahta lähestymistapaa:

      1. Lataa vastaavat palveluntarjoajan kirjastojen tiedostot, sijoita ne tietokoneellesi ja käytä linkkejä näihin kirjastoihin suoraan luodessasi ratkaisua.

      2. Lataa ja asenna sopiva toimittaja, joka integroituu Visual Studioon, ja käytä palveluntarjoajan ohjaimia, kuten kaikkia muita ympäristön visuaalisia ohjaimia.

    Tarjolla on sekä maksullisia että ilmaisia ​​ratkaisuja. Epätäydellinen luettelo työkaluista ja johtajista löytyy tästä linkistä verkkosivustolla sqlite.org. Tässä huomautamme vain, että SQLite-verkkosivustolta löydät vaihtoehtoja palveluntarjoajan kirjastotiedostoille kaikkiin tilanteisiin.

      Vain hallittu - sovelluksille, joiden on toimittava Windows- ja Linux-pohjaisissa käyttöjärjestelmissä.

      Compact Framework - työskentelyyn .NET CF -ympäristössä mobiililaitteille Windowsin ohjaus CE.

      Itanium - käytettäväksi Intel Itanium -prosessoreilla.

      x64 - versio alustoille, joissa on x64-arkkitehtuuri.

      x86 - versio alustoille, joissa on x86-arkkitehtuuri.

    Valitun lähestymistavan mukaan ratkaisu Windows-sovelluksiin SQLiten kanssa on hieman erilainen.

    Ensinnäkin kirjastotiedostot löytyvät tästä linkistä virallisella SQlite-verkkosivustolla - sqlite.org. kuitenkin, niiden, jotka harkitsevat alla olevaa esimerkkiratkaisua (kohdat 2, 3), tätä ei tarvitse tehdä. Ladattavaksi liitetyn kappaleen 3 lopussa on kaikki kolme Windowsille tarvitsemamme tiedostoa, ja ne voidaan myös ladata ratkaisun rakentamista harkittaessa paikassa, jossa puhumme niiden sisällyttämisestä (2 kohta).

    Toisessa lähestymistavassa voit löytää monia, mutta enimmäkseen maksullisia, sulautettuja palveluntarjoajia Internrt. Löysin yhden hyvistä ilmaisista palveluntarjoajista "dotConnect for SQLite 3.30 Standard (Free)". Sen käyttöä käsitellään jäljempänä (kohta 5), ​​mutta kuinka kauan se on ilmainen, on kysymys. Lisäksi se on huonompi kuin sen vieressä olevalla sivustolla sijaitseva dotConnect for SQLite 3.30 Professional Trial (30 päivää).

    Saatamme tarvita johtajan työskentelemään tietokannan parissa.

    Ensimmäinen tunnettu on SQLite Designer. Vaikka rikkauksia toiminnallisuutta se on kaukana hyvästä tietokannan hallinnasta ja pärjää ilmankin, mutta silti se mahdollistaa joidenkin visuaalisten työkalujen käyttämisen SQLite-tietokantojen kanssa työskentelyyn: Query Builder, taulukoiden muokkaus ja joukko muita ominaisuuksia. Se löytyy erityisesti Internetistä (Tiedostot-välilehti).

    Toisella, viileämmällä hallintaohjelmalla, SQLite Expert Professionalilla, on suurin osa hyvien tietokannanhallintaohjelmien ominaisuuksista. Se löytyy myös Internetistä, erityisesti ohjelman verkkosivulta sqliteexpert.com. Valitettavasti tämä on kokeiluversio, jonka ajanjakso on 30 päivää, mutta 30 päivässä voit tutustua tietotyyppeihin ja SQL-lauseiden muodostamiseen tietokannan kanssa työskentelemistä varten ja moniin muihin ominaisuuksiin. Joten älä ole laiska ja asenna tämä hallinta itsellesi.

    Huomaa myös, että Visual Studioon sisäänrakennettuja palveluntarjoajia käytettäessä on mahdollista päästä tietokantaan studion Server Explorerista ja palveluntarjoajasta riippuen joitain toimintoja tietokantataulukoiden käsittelyyn ja kyselyjen laatimiseen.

    Aloitetaan vuorovaikutuksen järjestäminen SQLiten kanssa tarkastelemalla sitä yksityiskohtaisesti käyttämällä ensimmäistä lähestymistapaa. Seuraavaksi - toinen ja kolmas kappale on omistettu luomiselle Windows-sovellukset käyttämällä ensimmäistä lähestymistapaa, joka perustuu suoraan palveluntarjoajan kirjastotiedostojen käyttöön integroimatta niitä Visual Studio Nettiin.

    Kappale 2. Esittelyratkaisun valmistelu

    Luodaan yksinkertainen Windows-sovellusratkaisu, kuten luvussa 1, "Yksinkertaisin Windows-sovellusprojekti" on esitetty. Käytin Visual Studio 2010:tä. Siinä ratkaisua luotaessa kaikki pysyi ennallaan kuin studion aiemmissa versioissa, "Tiedosto/Uusi projekti" -valikko. Valitse seuraavaksi malli, kuten kuvassa 1, ja aseta nimet. Kiinnitä huomiota punaisella korostettuun. Ehkä sinulla ei ole VS_2010-kansiota (se luodaan) tai siinä ei ole asemaa D, niin se tulisi korvata C:llä.

    Kuva 1 Sovellusratkaisun luominen

    Sijoitamme hakulomakkeeseen kuusi painiketta kuvan 2 mukaisesti.

    Kuva 2 Sovellusratkaisu

    Kaksoisnapsauttamalla kutakin painiketta luomme kaikki tarvitsemamme painikkeen napsautuskäsittelijät, jotta meidän ei tarvitse palata niihin tulevaisuudessa.

    Suunnittelemme SqLiten kanssa työskentelyn funktiot muodin mukaan "sqliteclass"-luokkaan, jolle luomme tämän luokan kuvan 3 mukaisesti napsauttamalla Solution Explore -solmua "sqlite"-solmun kohdalla. oikealla painikkeella hiirellä ja valitsemalla kontekstivalikon kohdat "Lisää" ja "Uusi kohde".

    Kuva 3 Luokan lisääminen SQLiten kanssa työskentelemistä varten

    Valitse näkyviin tulevasta "Add New Item" -mallikokoelmaikkunasta "Class", kirjoita "Nimi"-kenttään luokan nimi - "sqliteclass.cs" ja napsauta "Lisää" -painiketta. Luokka on luotu - kuva 4. Jäljelle jää vain täyttää se sisällöllä.

    Kuva 4 Luokka funktioiden sijoittamiseen SQLiten kanssa työskentelyä varten

    Päällä tässä vaiheessa On suositeltavaa painaa "F5"-painiketta ratkaisun suorittamisen jälkeen varmistaaksesi, että koodi toimii tähän asti.

    On tullut hetki, jolloin meidän on sisällytettävä SQLite-toimittajakirjastot projektiin. Voit tehdä tämän lataamalla ne joko yllä suositellulla tavalla SQLite-verkkosivustolta tai yhdessä lopullisen ratkaisuehdotuksen kanssa kappaleen 3 lopussa tai. Puretaan arkisto, kahdessa viimeisessä tapauksessa löydämme SQLite3NET-kansion, sijoitamme sen julkisesti saatavilla olevaan paikkaan, esimerkiksi "C"-aseman juureen (voit tietysti sijoittaa tiedostot kansiosta tai itse kansio, johon Visual Studio tallentaa tärkeimmät dll-tiedostot - minulle:
    C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile\Client\).

    PS: Selvittääksesi tämän polun, kaksoisnapsauta Solution Explorerissa "System"-linkkiä "References"-välilehdellä (kuva 4) - polku, johon kirjastot on tallennettu, näkyy "Object Browserissa". ikkuna.

    Napsauta hiiren kakkospainikkeella References-välilehteä (kuva 4), valitse pikavalikosta kohta "AddReference...", "AddReference"-ikkunassa valitse "Browse"-välilehti, etsi pakkaamaton SQLite3NET-kansiomme ja valitse peräkkäin " SQLite"-kirjasto projekteihin .Net.dll" ja "ExceptionHandler.dll" (kuva 5.).

    Kuva 5 SQLite-toimittajakirjastojen lisääminen ratkaisuun

    Mene ratkaisun sqliteclass-välilehdelle ja lisää nimiavaruuteen "Finisar.SQLite" ja "System.Data" - ne ovat välttämättömiä tietokannan kanssa työskentelyssä.

    Järjestelmän käyttö; käyttäen System.Collections.Generic; käyttäen System.Linq; käyttäen System.Text; käyttämällä System.Dataa;
    käyttäen Finisar.SQLitea; nimiavaruus sqlite ( luokka sqliteclass ( ) )

    Tässä vaiheessa ratkaisumme on valmis luomaan ja järjestämään vuorovaikutusta SQLite-tietokannan kanssa. Varmista, että kaikki toimii tässä vaiheessa, painamalla "F5".

    Kappale 3. Vuorovaikutuksen järjestäminen SQLiten kanssa

    3.1 Tietokannan käytön aloittaminen

    Siirrytään "Form1.cs" -välilehteen ja lisätään muuttujat, joita tarvitsemme työhön, ja ensinnäkin "sqliteclass"-luokan esiintymä - "mydb".

    Nimiavaruus sqlite ( julkinen osittainen luokka Form1: Form ( yksityinen sqliteclass mydb = null; yksityinen merkkijono sPath = merkkijono.Tyhjä; yksityinen merkkijono sSql = merkkijono.Tyhjä; .....

    Päätetään, että luomme tietokannan sovellushakemistoon. Määrittelemme sen nimeksi ”mybd.db” (tietokantatiedoston halutut tiedostopäätteet ovat ”db” tai ”db3”, ainakin tietokannan hallintaohjelmat tarjoavat mahdollisuuden valita tietokantatiedoston näillä tunnisteilla, mutta tunniste periaatteessa ei näytellä roolirooleja). Lisäksi tarvitsemme polun, jossa sovelluksen "exe"-tiedosto sijaitsee, ja koko polun tietokantatiedostoon - "sPath"-muuttujan. Siirrytään Form1.cs-välilehteen. ja kaksoisnapsauta ratkaisuikkunan otsikkoa. Hakemuslomakkeen latauskäsittelijä "Form1_Load" luodaan, ja määrittelemme siihen "sPath" (C#:ssa on monia tapoja määrittää, missä "exe"-tiedosto sijaitsee, tämä on yksi monista).

    Yksityinen void Form1_Load(object sender, EventArgs e) ( sPath = Path.Combine(Application.StartupPath, "mybd.db"); //Jotta MessageBox ei muodostu lisää, kaikki viestit tulostetaan lomakkeen otsikkoon Text = sPath; )

    3.2. Luokka tietokannan kanssa työskentelemiseen

    Tiedämme, että SQL-lauseet voidaan jakaa kahteen päätyyppiin:

      Ei palauta arvoja tietokannasta (in paras tapaus palauttaa niiden tietueiden lukumäärän, joihin niiden suoritus vaikuttaa - "Lisää", "Poista", "Päivitä").

      Pyydetyn tiedon palauttaminen tietokantataulukoista.

    Siksi luokallamme luomme näille tapauksille kaksi funktiota, iExecuteNonQuery ja drExecute, vastaavasti. Ensimmäinen palauttaa niiden tietueiden määrän, joihin se vaikuttaa, ja toinen joukon valittuja DataRows. Koska toiminnot eivät käytännössä eroa tietokannan kanssa tehtävän työn organisoinnissa niistä, joita tarkastelimme tälle sivustolle lähetetyn kirjan osiossa "Työskentely tietokantojen kanssa Visual Studiossa", esittelemme tässä luokan kokonaisuudessaan ja tarkastelemme sen toimintoja:

    PS: Voit lisätä luokkaan funktioita skalaarivalintaan ja valintatoimintoihin DataReaderin avulla, mutta meidän tarkoitukseen riittää kaksi funktiota. Loput, jokainen voi lisätä itse.

    Järjestelmän käyttö; käyttäen System.Collections.Generic; käyttäen System.Linq; käyttäen System.Text; käyttäen Finisar.SQLitea; käyttäen System.Data; nimiavaruus sqlite ( luokka sqliteclass ( //Constructor public sqliteclass() ( ) #region iExecuteNonQuery julkinen int iExecuteNonQuery(merkkijono FileData, string sSql, int missä) ( int n = 0; kokeile ( käyttämällä (SQLiteConnection)Connection (uusi) if (jossa == 0) ( con.ConnectionString = @"Data Source=" + FileData + ";New=True;Version=3"; ) else ( con.ConnectionString = @"Tietolähde=" + FileData + "; New=False;Version=3"; ) con.Open(); käyttäen (SQLiteCommand sqlCommand = con.CreateCommand()) ( sqlCommand.CommandText = sSql; n = sqlCommand.ExecuteNonQuery(); ) con.Close ) catch (Poikkeus ex) ( n = 0; ) return n; ) #endregion #region drSuorita julkinen DataRow drSuorita(merkkijono FileData, string sSql) ( DataRow datarows = null; SQLiteDataAdapter dataadapter = null; DataSet dataset = new DataSet(); DataTable datatable = new DataTable() kokeile ( käyttäen (SQLiteConnection con = new SQLiteConnection())) ( con.ConnectionString = @"Data Source=" + FileData + ";New=False;Version=3"; con.Open(); käyttäen (SQLiteCommand sqlCommand = con.CreateCommand()) ( dataadapter = uusi SQLiteDataAdapter(sSql, con); dataset.Reset(); dataadapter.Fill(tietojoukko); datataulukko = tietojoukko.taulukot; tietorivit = tietotaulukko.Valitse(); ) con.Close(); ) ) saalis (Poikkeus ex) ( datarivit = null; ) palauttaa datarivit; ) #endregion ) )

    Joten ero muiden tietokantojen kanssa työskentelemiseen on useiden omien ei-visuaalisten ohjausobjektien läsnäolo. Ensimmäinen on sen oma liitin - "SQLiteConnection", toinen on sen oma komentotoimittaja - "SQLiteCommand" ja kolmas on sen oma datasovitin "SQLiteDataAdapter". Muita ohjaimia ei tarvita kuin MS SQL ja Oracle.

    "ConnectionString" vaatii koko polun tietokantaan. Tietokannan kanssa kommunikointiprosessit ovat myös vakioita. Kiinnitetään huomiota "Uusi"-parametriin, joka on yhtä suuri kuin "True" tai "False", joka, kuten kontekstista ilmenee, "True"-asetuksena luo uuden tietokannan, mutta kun se on asetettu arvoon "False", se ei. Lisäksi sen arvo on etusijalla "jos ei ole olemassa" SQL-käskyssä "CREATE TABLE jos ei ole..."

    Siirrytään koodiin:

    3.3 Tietokannan luominen

    Luomme tietokannan "mybd.db", jonka polun tiedostoon määritimme muuttujassa "sPath". Luomme tietokantaan taulukon "syntymäpäivä" kenttien "Koko nimi", "Syntymäaika" ja "onnittelumerkit tietystä vuodesta" arvoilla:

    Yksityinen void-painike1_Napsauta(objektin lähettäjä, EventArgs e) ( //Luo luokkamme esiintymä mydb = new sqliteclass(); sSql = @"LUO TABLE syntymäpäivä]( KOKONAISLUKU PRIMARY KEY AUTOINCREMENT"; sSql +=", TEKSTI EI TYHJÄ, datetime NOT NULL, INTEGER DEFAULT 0);"; //Yritämme luoda tietokannan ja taulukon samanaikaisesti, koska //tietokannan luominen on vain luontiprosessi tyhjä tiedosto järjestettäessä //yhteyttä tai osoitettaessa tiedostoon, jos tietokanta (tiedosto) on olemassa //Funktion kolmas parametri sanoo, että tietokanta luodaan uudelleen mydb.iExecuteNonQuery(sPath, sSql, 0);

    Jos suoritamme ratkaisun tässä vaiheessa, saamme käsittelemättömän poikkeuksen. Syynä on työskennellä SQLiten kanssa kaikkien palveluntarjoajan kirjastotiedostojen tulee sijaita siellä, missä "exe"-sovellustiedosto on kokoonpanossa . Kopioimme kolme tiedostoa tiedostosta C:\SQLite3NET\ tiedostoon D:\VS_2010\sqlite\bin\Debug\ (tämä on tehtävä myös, kun käännämme sovellusta "Release" -kohdassa, kopioimalla tiedostot kansioon...\bin\ julkaisu).

    PS: Ne linkit, joiden kirjastoja tarvitaan sovelluskokoonpanossa, voidaan kopioida kokoonpanoon automaattisesti. Tätä varten sinun on Solution Explorerissa valittava linkin "Ominaisuudet"-ikkuna ja asetettava "Kopioi paikallinen" -ominaisuuden arvoksi "True"..

    Suoritetaan sovellus, napsauta "Luo"-painiketta ja varmista, että tietokanta on luotu (D:\VS_2010\sqlite\bin\Debug\mybd.db).

    Huomaa, että tietokantaa tai taulukkoa luotaessa sqlCommand.ExecuteNonQuery ei palauta mitään, tai pikemminkin palauttaa "0". Siksi meidän on jotenkin tarkistettava, mitä olemme luoneet. Teen sen näin (jatkaen yllä olevaa koodia):

    //Toimenpiteen tarkistaminen sSql = @"insert into birthday (FIO,bdate,gretinyear)"; sSql +=" arvot("Aleksanteri Sergeevich Pushkin","1799-06-06",0);"; if (mydb.iExecuteNonQuery(sPath, sSql, 1) == 0) ( Text = "Virhe tarkistetaan tietueen taulukkoa,"; Text +=" -taulukkoa ei joko luotu tai testijonon kirjoittaminen epäonnistui!"; mydb = null; return ; ) sSql = "valitse * syntymäpäivästä"; DataRow datarows = mydb.drExecute(sPath, sSql); if (datarows == null) ( Text = "Taulukon lukutarkistus epäonnistui!"; mydb = null; return; ) Teksti = ""; foreach (DataRow dr tietoriveissä) ( Teksti += dr["id"].ToString().Trim() + dr["FIO"].ToString().Trim() + dr["bdate"].ToString( ).Trim() + " "; ) sSql = "poista syntymäpäivästä"; if (mydb.iExecuteNonQuery(sPath, sSql, 1) == 0) ( Text = "Virhe tarkistettaessa taulukkoa tietueen poistamiseksi!"; mydb = null; return; ) Text = "Taulukko luotu!"; mydb = nolla; palata; )//yksityinen void button1_Click(objektin lähettäjä, EventArgs e)

    Käytimme periaatteessa kaikkia tietokannan perustoimenpiteitä. Alla olevat toiminnot selventävät vain vuorovaikutuksen periaatteita.

    3.4 Työskentely tietokannan kanssa

    Työskentely tietokannan kanssa sisältää luokkafunktioiden käyttämisen lukemiseen ja kirjoittamiseen.

    Yksityinen void button2_Click(objektin lähettäjä, EventArgs e) ( mydb = uusi sqliteclass(); sSql = @"lisää syntymäpäivään (FIO,bdate,gretinyear)"; sSql +=" arvot("Aleksandri Sergeevich Pushkin","1799-06 -06",0);" //Tarkistaa if (mydb.iExecuteNonQuery(sPath, sSql, 1) == 0) ( Text = "Tietovirhe!"; ) mydb = null Text = "Tietue 1 lisätty! "; paluu ("Tolstoi Lev Nikolajevitš","1928-08-28",0);"; //Teoksen tarkistus if (mydb.iExecuteNonQuery(sPath, sSql, 1) == 0) ( Teksti = "Kirjoitusvirhe!" ; ) mydb = null; Teksti = "Tietue 2 lisätty!"; , sSql); if (datarows == null) ( Text = "Lukuvirhe!"; mydb = null; return; ) Teksti = ""; foreach (DataRow dr tietoriveissä) ( Teksti += dr["id"].ToString().Trim() + " " + dr["FIO"].ToString().Trim() + " " + dr[" bdate"].ToString().Trim() + " "; ) mydb = null; ) yksityinen void button5_Click(objektin lähettäjä, EventArgs e) ( mydb = uusi sqliteclass(); sSql = "poista syntymäpäivästä"; if (mydb.iExecuteNonQuery(sPath, sSql, 1) == 0) ( Teksti = "Virhe tietueen poistamisessa !"; mydb = null; return; ) mydb = null; Text = "Tietueet on poistettu tietokannasta!"; ) yksityinen void button6_Click(objektin lähettäjä, EventArgs e) ( mydb = new sqliteclass(); sSql = @" Päivitä syntymäpäiväsarja bdate="1828-08-28", jossa FIO like("%Tolstoy%");"; if (mydb.iExecuteNonQuery(sPath, sSql, 1) == 0) ( Text = "Tallenna päivitysvirhe!" mydb = null ) mydb = null;

    Työskentely tietokannan kanssa on esitetty kuvassa 6.

    Kuva 6 Työskentely tietokannan kanssa SQLite-tiedot

    3.5 Lataa sovellusratkaisu

    Sovellusratkaisun voi ladata.

    Osa 4. SQLite-tietotyypit

    Kätevintä on tarkastella SQLite-tietotyyppejä SQLite Expert Professional -hallintaohjelmassa, jota käsittelimme kappaleessa 1 (kuva 7.). Voit tehdä tämän napsauttamalla "Uusi taulukko" -painiketta, kirjoittamalla taulukon nimen ja napsauttamalla "Lisää" -painiketta. "Uusi kenttä" -ikkunassa avattavassa luettelossa näemme kaikki tällä hetkellä mahdolliset tietotyypit.

    Kuva 7 SQLite-tietotyypit

    Kaikki ei kuitenkaan ole niin ihanaa kuin miltä se saattaa näyttää. Voimme todellakin asettaa yllä näkyvät tyypit taulukkoa luotaessa, mutta nämä ovat suurimmaksi osaksi ns. affiinityypit tai tyyppejä, joista palveluntarjoaja johtaa johonkin seuraavat tyypit varastointi:

      TYHJÄ. Tyhjä arvo tietokantataulukossa.

      KOKONAISLUKU. Kokonaislukuarvo, joka on tallennettu 1, 2, 3, 4, 6 tai 8 tavuksi itse arvon koosta riippuen.

      TODELLINEN. Liukulukulukuarvo. Tallennettu 8-tavuiseen IEEE-liukulukumuotoon.

      TEKSTI. Tekstimerkkijonon arvo. Tallennettu tietokantakoodauksella (UTF-8, UTF-16BE tai UTF-16LE).

      MÖYKKY. Binääritietojen arvo, joka on tallennettu täsmälleen sellaisena kuin se syötettiin.

    Lisätietoja tietotyypeistä löytyy xBB-verkkosivustolta - hyödyllistä verkkovastaaville ja paljon muuta (katso sivuston osio "Valitut asiakirjat" - "SQLite-tietotyypit"). Esittelemme sivustolta saraketyyppien ilmoitukseen perustuvat sarakeaffiniteettisäännöt ja sivustolla oleva taulukko, jolla ilmoitetut tiedot muunnetaan affiniteettityypeiksi viiden säännön mukaisesti:

      1. Jos tyyppimääritys sisältää merkkijonon "INT", sarake liittyy affiiniseen INTEGER-lukuun.

      2. Jos saraketyypin ilmoitus sisältää jonkin merkkijonoista "CHAR", "CLOB" tai "TEXT", affiniteetti määritetään TEKSTI:ksi. Huomaa, että VARCHAR-tyyppi sisältää alimerkkijonon "CHAR" ja vastaa siten myös affinista TEKSTIä.

      3. Jos saraketyypin ilmoitus sisältää merkkijonon "BLOB" tai jos tyyppiä ei ole määritetty, sarake on affinissa NONE.

      4. Jos saraketyypin ilmoitus sisältää jonkin merkkijonoista "REAL", "FLOA" tai "DOUB", affiniteetti määritetään TODELLA.

      5. Muissa tapauksissa sarake kartoitetaan affiiniseen NUMEROON.

    Esimerkkejä tyyppinimistä CREATE TABLE -kyselyistä tai CAST-lausekkeista Tuloksena oleva affiniteetti Affiniteetin määrittämiseen käytetty sääntö
    INT
    KOKONAISLUKU
    TINYINT
    PIENI
    KESKIPÄINEN
    BIGINT
    ALLEKIRJOITTAmaton BIG INT
    INT2
    INT8
    KOKONAISLUKU 1
    HAHMO(20)
    VARCHAR(255)
    VAIHTELEVA LUONNE (255)
    NCHAR(55)
    ALKUPERÄINEN hahmo (70)
    NVARCHAR(100)
    TEKSTI
    CLOB
    TEKSTI 2
    MÖYKKY
    ei tietotyypin merkintää
    EI MITÄÄN 3
    TODELLINEN
    KAKSINKERTAINEN
    KAKSI TARKKUUS
    FLOATNONE
    TODELLINEN 4
    NUMERO
    DESIMAALI(10,5)
    BOOLEAN
    PÄIVÄMÄÄRÄ
    TREFFIAIKA
    NUMERO 5

    On myös hyödyllistä tarkastella SQLite-dokumentaatiota ja erityisesti sb-money.ru-verkkosivustoa ja tietysti SQLlite-verkkosivustoa.

    Osa 5. Visual Studion sisäänrakennettujen SQLite-palveluntarjoajien käyttö

    Kuten kohdassa 1 mainittiin, Visual Studioon sisäänrakennettu hyvä ilmainen palveluntarjoaja "dotConnect for SQLite 3.30 Standard (Free)" löytyy verkkosivustolta http://www.devart.com, Lataa-välilehti.

    Ladataan se ja asennetaan koneelle, kun kaikki Visual Studio Net on suljettu.

    Toimittajan huomautuksessa sanotaan:

    Huomautus: Tämä paketti toimii .NET Framework 2.0, 3.0, 3.5 ja 4.0 kanssa

    Varmistetaan tämä. Avataan kappaleen 3 lopussa lataamamme (loimme) projekti, poistetaan kaikki viittaukset "References"-välilehden "Solution Explorerista" SQLiteen sekä nimiavaruus "sqliteclass.cs" -tiedostosta:

    Finisar.SQLite;

    Valitse Toolbox (valikko "View", "Toolbox") ja katso uusi kirjanmerkki"SQLiteData" (kuva 8.).

    Kuva 8. Sisäänrakennettu SQLite-toimittaja

    Siirretään mikä tahansa ohjausobjekti "SQLiteData"-välilehdeltä projektiin, esimerkiksi "SQLiteConnection"-ohjausobjekti. Varmistetaan, että uusia kirjastoja on ilmestynyt "Solution Explorer" -sovellukseen, "References"-välilehdelle (kuva 8):

    Devart.Data Devart.Data.SQLite

    Lisätään nimiavaruuksia luokkaan "sqlclass.cs":

    Käyttämällä Devart.Data; käyttäen Devart.Data.SQLitea;

    Päätetään tässä vaiheessa, käytämmekö vakiosäätimiä vai emme. En kannata vakiosäätimien käyttöä. Ilman niitä voimme rakentaa joustavampia sovelluksia. Siksi poistetaan projektista "sqLiteConnection1"-ohjausobjekti (References-välilehdellä Solution Explorerissa, kun ohjausobjekti lisättiin projektiin, kirjastot lisättiin, mutta poistettaessa ne säilyvät). Tämä tarkoittaa, että voimme jatkaa projektin parissa.

    Muutetaan luokkaamme "sqliteclass.cs" hieman:

    Järjestelmän käyttö; käyttäen System.Collections.Generic; käyttäen System.Linq; käyttäen System.Text; käyttäen System.Data.SqlTypes; käyttäen System.Data; käyttäen Devart.Data;
    käyttämällä Devart.Data.SQLitea;
    nimiavaruus sqlite ( luokka sqliteclass ( //Constructor public sqliteclass() ( ) #region iExecuteNonQuery julkinen int iExecuteNonQuery(merkkijono FileData, string sSql, int missä) ( int n = 0; kokeile ( käyttämällä (SQLiteConnection)Connection (uusi) if (jossa == 0) ( SQLiteConnection.CreateFile(FileData); con.ConnectionString = @"Data Source=" + FileData; ) else ( con.ConnectionString = @"Data Source=" + FileData; ) con.Open(); käyttäen (SQLiteCommand sqlCommand = con.CreateCommand()) ( sqlCommand.CommandText = sSql; n = sqlCommand.ExecuteNonQuery(); ) con.Close(); ) ) saalis (Poikkeus ex) ( n = 0; ) paluu n; ) #endregion #region drSuorita julkinen DataRow drSuorita(merkkijono FileData, string sSql) ( DataRow datarivit = null; SQLiteDataAdapter dataadapter = null; DataSet dataset = new DataSet(); DataTable datatable = new DataTable(); kokeile ( käyttämällä (SQLiteConnection con = uusi SQLiteConnection()) ( con.ConnectionString = @"Tietolähde=" + FileData; con.Open(); käyttäen (SQLiteCommand sqlCommand = con.CreateCommand()) ( dataadapter = uusi SQLiteDataAdapter(sSql, con); dataset.Reset(); dataadapter.Fill(tietojoukko); datataulukko = tietojoukko.taulukot; tietorivit = tietotaulukko.Valitse(); ) con.Close(); ) ) saalis (Poikkeus ex) ( datarivit = null; ) palauttaa datarivit; ) #endregion ) )

    Siinä kaikki muutokset luonnosratkaisuun. Toteutetaan ratkaisu ja varmistetaan, että sovellus toimii kuten ennenkin (kuva 6.).

    Kappale 6. Tietoja virheiden kanssa työskentelystä

    SQLite-palveluntarjoajat eivät sisällä erityisiä keinoja virheiden käsittelyyn.

    Ainoa asia, jonka voimme tehdä, on ilmoittaa muuttujat ja virheenpalautusfunktiot luokassa "sqlliteclass" seuraavasti:

    Yksityinen merkkijono sLasterror = merkkijono.Tyhjä; yksityinen merkkijono sErrors = merkkijono.Tyhjä; julkinen merkkijono sGetErrors() ( return sErrors; ) julkinen merkkijono sGeLastError() ( return sLasterror; )

    Ja vastaavasti lisää koodi luokkafunktioihin:

    Kokeile ( ....... )catch(Excaption ex) ( sLasterror =ex.Message; sErrors+=ex.Message+" "; )

    Virheanalyysi tulee suorittaa luokkakutsun koodissa näiden funktioiden kutsun jälkeen.

    Voit myös tarjota virheen kirjaamisen try-catchissa lisäämällä esimerkiksi seuraavan toiminnon:

    File.AppendAllText("logerrors.txt", DateTime.Now.ToString() + " " + Path.GetFileName(Tiedostotiedot) + " " + sSql + " " + ex.Message+" "+Ympäristö.Uusirivi, System.Teksti. Koodaus.UTF8);

    Kappale 7. Blob-tyyppien käyttäminen tai valokuvien tallentaminen

    7.1 Sovellusratkaisu

    Luodaan uusi ratkaisuprojekti nimeltä "sqlite1". Käytämme vaiheita projektin luomiseen yllä olevan menetelmän mukaisesti. Laitetaan lomakkeelle 6 painikesäädintä, 2 PictureBox-säädintä ja yksi OpenFileDialog-säädin. Luomme myös luokan "sqliteclass" (kuva 9.). Luokka voidaan ottaa edellisestä projektista kopioimalla se projektiimme, lisäämällä se ratkaisuun (Solution Explorer, solmu "sqlite1", kontekstivalikko solmu, "Lisää", "Olemassa oleva kohde") ja nimitilan uudelleennimeäminen:

    Järjestelmän käyttö; käyttäen System.Collections.Generic; käyttäen System.Linq; käyttäen System.Text; käyttäen Devart.Data; käyttäen Devart.Data.SQLitea; käyttäen System.IO:ta; käyttäen System.Data.SqlTypes; käyttäen System.Data;
    nimiavaruus sqlite1( luokka sqliteclass (

    Huomaa, että työskennelläksemme SQLiten kanssa käytämme Visual Studioon sisäänrakennettua palveluntarjoajaa ja kohdassa 5 kuvailtua lähestymistapaa. Kuten olemme nähneet, tämä ei ole olennaista, mutta suunnittelimme lähestymistapaprojektin uudelleen vastaavien toimittajakirjastotiedostojen käyttämisestä palveluntarjoajan käyttöön Visual Studioon sisäänrakennettu , Voit helposti harjoituksena tämän kappaleen lukemisen jälkeen tehdä käänteisen muunnoksen.

    Kuva 9. Päätösluonnos

    Esitetään ongelma: meidän on tallennettava valokuvatiedostot johonkin SQLite-tietokantaan, ja yksinkertaisuuden vuoksi tähän tietokantaan ei tallenneta muuta kuin valokuvat (vain valokuvan numero ja itse valokuva).

    Aloitetaan painikkeella 1 - tietokannan luominen.

    //Pakolliset nimitilat lomakeluokassa käyttäen System; käyttäen System.Collections.Generic; käyttäen System.ComponentModel; käyttäen System.Data; käyttäen System.Data.SQLitea; käyttäen System.Data.Common; käyttämällä System.Drawingia; käyttäen System.Linq; käyttäen System.Text; käyttäen System.Windows.Forms; käyttäen System.IO:ta; käyttäen System.Drawing.Imaging; nimiavaruus sqlite1 ( public partial class Form1: Form ( //Pakolliset muuttujat muotoluokalle private sqliteclass mydb = null; yksityinen merkkijono sCurDir = string.Empty; yksityinen merkkijono sPath = merkkijono.Tyhjä; yksityinen merkkijono sSql = merkkijono.Tyhjä; yksityinen int viNum = 0; julkinen tavu data = null //Painikkeiden napsautuskäsittelijä 1 - tietokannan luominen: yksityinen void button1_Click(objektin lähettäjä, EventArgs e) ( File.Delete(sPath); mydb = new sqliteclass(); sSql = " luo taulukko myphoto (ID INTEGER PRIMARY KEY NOT NULL,photos blob)"; //Käytä edellä käsiteltyä luokkafunktiota mydb.iExecuteNonQuery(sPath, sSql, 0); mydb = null; //Teimme toiminnallisuuden tarkistuksen, emme toista sitä )

    Tässä ei ole mitään uutta, käytimme jopa iExecuteNonQuery-funktiota edellisen ratkaisun "sqliteclass" -luokasta. Voit kopioida kaikki funktiot "sqliteclass"-luokkaan edellisestä ratkaisusta, jos et noudattanut luokan kopiointiohjeita.

    Huomaa, että tietokantataulukkoa luodessasi hylkäsimme tarkoituksella "AUTOINCREMENT" -vaihtoehdon - syynä on, että tallennusmenetelmä, jota tarkastelemme seuraavaksi, ei ole kovin ystävällinen tämän ehdotuksen kanssa.

    Yksityinen void button2_Click(objektin lähettäjä, EventArgs e) ( openFileDialog1.InitialDirectory = @"C:\"; openFileDialog1.Filter = "Kaikki kirjontatiedostot|*.bmp;*.gif;*.jpeg;*.jpg;" + " *.fif;*.fiff;*.png;*.wmf;*.emf" + "|Windows Bitmap (*.bmp)|*.bmp" + "|JPEG-tiedostojen vaihtomuoto (*.jpg)|*. jpg;*.jpeg" + "|Graphics Interchange Format (*.gif)|*.gif" + "|Portable Network Graphics (*.png)|*.png" + "|Tag Embroidery -tiedostomuoto (*.tif) |*.tif;*.tiff"; //openFileDialog1.Filter += "|Kaikki tiedostot (*.*)|*.*"; if (openFileDialog1.ShowDialog() == DialogResult.OK) ( Kuvan kuva= Image.FromFile(openFileDialog1.FileName); MemoryStream memoryStream = new MemoryStream(); //Tästä voit valita tallennusmuodon image.Save(memoryStream, ImageFormat.Jpeg); data = muistiStream.ToArray(); pictureBox1.Image = kuva; ) )

    Tallennettavan valokuvan näyttämisen lisäksi sijoitimme valokuvatiedoston tavut tavutaulukkoon "dataksi" käyttämällä MemoryStreamia ja sen ToArray()-menetelmää.

    7.2 Mahdollisuudet SQLiteDataAdapterin käyttö BLOB-tietojen kirjoittamiseen

    Otetaan kaksi funktiota luokkaamme. Ensimmäinen tehtävä on "oppia" tietokantataulukon skeema ja palauttaa se Datataulukkoon.

    #region fReagSchema - Tietokantaskeeman lukeminen julkinen DataTable dtReagSchema(merkkijono FileData, string sSql) ( bool f = true; DataTable mydatatable = new DataTable(); SQLiteConnection con = new SQLiteConnection(); yritä ( con.ConnectionString = @"Data Source = " + Tiedostotiedot; con.Open(); myDataAdapter = uusi SQLiteDataAdapter(sSql, con); mycommandbuilder = uusi SQLiteCommandBuilder(myDataAdapter); myDataAdapter.FillSchema(mydatatable, SchemaType.Source); ) saalis (Exception) ; ) if (myDataAdapter == null || mycommandbuilder == null) ( mydatatable = null; ) return mydatatable ) #endregion;

    Toisen toiminnon tehtävänä on tehdä muutoksia suoraan tietokantaan:

    #region Muuta tietokanta julkinen int iWriteBlob(merkkijono FileData, DataTable mydatatable) ( int n = 0; using (SQLiteConnection con = new SQLiteConnection())) ( kokeile ( n = myDataAdapter.Update(mydatatable); ) catch (Poikkeus ex) ( n = 0 ) palauttaa n;

    Näitä kahta toimintoa käytetään yhdessä. Kun kutsumme ensimmäistä funktiota, saamme DataTable-objektin, joka sisältää tietokantaskeeman. Muussa tapauksessa voimme lisätä tietokantataulukon rivin objektiin ikään kuin olisimme lisänneet sen tietokantataulukkoon. Seuraavaksi rivin lisäämisen jälkeen kutsutaan toista funktiota, joka SQLiteDataAdapter- ja SQLiteCommandBuilder-objekteilla tekee muutoksen tietokantataulukkoon.

    Asiakaspuolella ei tarvitse muuta kuin täyttää DataTable-rivi:

    Yksityinen void button3_Click(objektin lähettäjä, EventArgs e) ( if (data == null) ( Teksti = "Ei valokuvaa valittu tietokantaan syötettäväksi"; return; ) int id = 0; mydb = uusi sqliteclass(); sSql = " Valitse max(id) omasta kuvasta"; objekti obj = mydb.oExecuteScalar(sPath, sSql); if (!string.IsNullOrEmpty(obj.ToString())) ( id = Convert.ToInt32(obj) + 1; ) else ( id = 1; ) //SQL-käsky taulukkoskeeman hakemiseen sSql = "Valitse * myphotosta" //DataTable-skeeman lukeminen dt = mydb.dtReagSchema (sPath, sSql) //Rivin lisääminen datarivin kanssa dt.NewRow( ); datarow["id"] = datarow["valokuvat"] = tiedot tallennettu tietokantaan!"; ) mydb = null )

    7.3 Mahdollisuus käyttää parametreilla varustettuja SQL-käskyjä BLOB-tietojen kirjoittamiseen

    Alla oleva luokkaan lisätty funktio ei väitä olevan universaali, mutta antaa sinun kirjoittaa kuvatavuja Blob-kenttään. Miksi tämä on tehtävä parametrien avulla sen sijaan, että muunnetaan taulukko merkkijonoksi? Tosiasia on, että kuvatavuissa voi olla nollamerkki, joka koetaan rivin päätteeksi, ja ainoa tapa suoraan kertoa sovittimelle, että se havaitsee, mitä tavutaulukossa lähetetään jatkuvana bittivirtana, on "SQLiteType. Möykky".

    #region ExecuteNonQuery julkinen int iExecuteNonQueryBlob(merkkijono FileData, merkkijono sSql, merkkijono s0, Int32-numero, merkkijono s1, tavutiedot) ( int n = 0; kokeile ( käyttämällä (SQLiteConnection con = uusi SQLiteConnection())) ( =. Tietolähde=" + FileData; con.Open(); käyttäen (SQLiteCommand sqlCommand = con.CreateCommand()) ( sqlCommand.CommandText = sSql; sqlCommand.Parameters.Add("@" + s0, SQLiteType.Int3). numero; sqlCommand.Parameters.Add("@" + s1, SQLiteType.Blob, data.Length).Arvo = data; n = sqlCommand.ExecuteNonQuery() catch (poikkeus esim.) ( n = 0; return n) #); loppualue

    Vastaavasti tämän toiminnon käyttö näyttää suunnilleen tältä:

    Yksityinen void-painike5_Napsauta(objektin lähettäjä, EventArgs e) ( if (data == null) ( Teksti = "Ei valokuvaa valittu syötettäväksi tietokantaan"; return; ) int id = 0; mydb = uusi sqliteclass(); sSql = " Valitse max(id) omasta kuvasta"; objekti obj = mydb.oExecuteScalar(sPath, sSql); if (!string.IsNullOrEmpty(obj.ToString())) ( id = Convert.ToInt32(obj) + 1; ) else ( id = 1 ) Text = id.ToString( sSql="Insert into myphoto (id,photos) value(@id,@photos)" "valokuvat", data; = "Valokuvaa ei ole tallennettu tietokantaan" ) else ( Text = "Kuva on tietokantaan"; data = null; ) mydb = null )

    7.4 Blob-tietojen lukeminen SQLiteDataAdapterin avulla

    Tämä on yksinkertaisin menetelmä, joka perustuu siihen, että voimme tulkita Datataulukossa luetut taulukon sarakkeet mille tahansa C#-kielellä käytettäväksi tietotyypiksi:

    #region Lue 1 BLOB-kenttä julkinen tavu rgbtReadBlob(merkkijono FileData, merkkijono sSql, merkkijonokenttä) ( tavupuskuri = null; DataTable datatable = new DataTable(); käyttäen (SQLiteConnection con = new SQLiteConnection()) ( kokeile ( con.ConnectionString = @"Data Source=" + FileData; ex) ( puskuri = null; ) palauttaa puskurin;

    7.5 Tietojen lukeminen SQLiteDataReaderin avulla

    #region Suorita SQLiteDataReader julkinen tavu rgbytedreaderSuorita(merkkijono FileData, merkkijono sSql) ( tavutiedot = null; SQLiteDataReader dr = null; kokeile ( käyttämällä (SQLiteConnection con = new SQLiteConnection())) ( con.ConnectionString = @"Data Source ; con.Open(); käyttäen (SQLiteCommand sqlCommand = con.CreateCommand()) ( sqlCommand.CommandText = sql; dr = sqlCommand.ExecuteReader(); (); ) ) catch (Poikkeus ex) ( data = null; ) tiedot lRead = reader.GetBytes(0, lOffset, bDate, 0, bDate.Length)) > 0) (tavu bRead = uusi tavu; Puskuri.BlockCopy (bDate, 0, bRead, 0, (int)lRead); muistivirta.Write (bRead, 0, bRead.Length) palauttaa muistivirran.ToArray();

    Molchanov Vladislav 25.5.2011, kohta 7 lisätty 30.5.2011 .

    SQLite on itsenäinen, palvelimeton SQL-tapahtumien tietokantamoottori. Python sai sqlite3-moduulin versiossa 2.5, mikä tarkoittaa, että voit luoda SQLite-tietokannan missä tahansa Pythonin todellisessa versiossa ilman lataamista lisätyökaluja. Mozilla käyttää SQLite-tietokantoja suosittu selain Firefox kirjanmerkkien ja muiden erilaisten tietojen tallentamiseen. Tässä artikkelissa käsittelemme seuraavia asioita:

    • Miten luoda SQLite-tietokanta
    • Kuinka lisätä tietoja taulukkoon
    • Kuinka muokata tietoja
    • Kuinka poistaa tietoja
    • SQL-peruskyselyt

    Toisin sanoen itse moduulin kokoamisen sijaan käymme suoraan läpi sen käytön.
    Jos haluat tarkistaa tietokantasi visuaalisesti, voit käyttää laajennusta SQLite Manager Firefoxissa (suosittelemme googlaamaan tämän kysymyksen) tai jos haluat käyttää komentoriviä, voit käyttää komentoriviltä.

    Kuinka luoda tietokanta ja lisätä erilaisia ​​tietoja

    Tietokannan luominen SQLitessä on hyvin yksinkertaista, mutta prosessi edellyttää, että ymmärrät hieman mitä SQL on. Katsotaanpa koodia, joka luo tietokannan musiikkialbumien tallentamista varten:

    Python

    import sqlite3 conn = sqlite3.connect("mydatabase.db") # tai :memory: tallentaa RAM-muistiin cursor = conn.cursor() # Luo taulukko cursor.execute("""LUO TABLE-albumit (nimiteksti, artistin teksti , release_date text, publisher text, media_type text) """)

    Ensin tarvitsemme moduulin sqlite3 ja luo yhteys tietokantaan. Voit välittää tiedoston nimen tai käyttää vain erityistä merkkijonoa " :muisti:” luodaksesi muistissa olevan tietokannan. Meidän tapauksessamme luomme sen levylle tiedostoon nimeltä oma tietokanta.db.

    Seuraavaksi luomme objektin kohdistin, jonka avulla voimme olla vuorovaikutuksessa tietokannan kanssa ja lisätä tietueita mm. Täällä käytämme SQL-syntaksi luodaksesi albumit-nimisen taulukon, jossa on seuraavat viisi kenttää: nimi, esittäjä, julkaisupäivä, julkaisija ja mediatyyppi. SQLite tukee vain viittä tietotyyppiä: tyhjä, kokonaisluku, todellinen, teksti Ja möykky. Kirjoitetaan tämä koodi ja lisätään tietoja uuteen taulukkoomme. Muista, jos suoritat komennon LUO TAULU, ja tietokanta on jo olemassa, saat virheilmoituksen.

    Python

    # Lisää tiedot taulukkoon cursor.execute("""INSERT INTO albums VALUES ("Glow", "Andy Hunter", "7/24/2012", "Xplore Records", "MP3")""") # Tallenna muutokset conn.commit() # Lisää taulukkoon paljon tietoa turvallisella "?" albumit = [("Exodus", "Andy Hunter", "7/9/2002", "Sparrow Records", "CD"), ("Until We Have Faces", "Red", "2/1/2011" , "Essential Records", "CD"), ("The End is Where We Begin", "Thousand Foot Krutch", "4/17/2012", "TFKmusic", "CD"), ("The Good Life" , "Trip Lee", "4/10/2012", "Reach Records", "CD")] cursor.executemany("INSERT INTO albums VALUES (?,?,?,?,?)", albums) conn. tehdä()

    # Lisää tiedot taulukkoon

    kohdistin. execute("""INSERT INTO albumeihin

    ARVOT ("Glow", "Andy Hunter", "7/24/2012",

    "Xplore Records", "MP3")"""

    # Tallenna muutokset

    yhteys tehdä()

    # Lisää taulukkoon paljon tietoa turvallisella "?"-menetelmällä

    albumit = [ ("Exodus" , "Andy Hunter" , "7/9/2002" , "Sparrow Records" , "CD" ) ,

    ("Until We Have Faces", "Red", "2/1/2011", "Essential Records", "CD"),

    ("The Good Life", "Trip Lee", "4/10/2012", "Reach Records", "CD")]

    kohdistin. executemany( "INSERT INTO albums VALUES (?,?,?,?,?)", albumit)

    yhteys tehdä()

    INSERT INTO SQL lisätäksesi tietueen tietokantaamme. Huomaa, että jokainen esine on sisällä yksittäisiä lainauksia. Tämä voi vaikeuttaa asioita, jos sinun on lisättävä rivejä, jotka sisältävät yksittäisiä lainausmerkkejä. Joka tapauksessa, jotta voimme tallentaa tietueen tietokantaan, meidän on luotava se. Seuraava koodinpätkä näyttää kuinka lisätä useita tietueita kerralla käyttämällä kohdistinmenetelmää. Huomaa, että käytämme kysymysmerkkejä ( ? ), korvausmerkkijonojen (%) sijaan arvojen lisäämiseksi. Huomaa, että korvaavan merkkijonon käyttäminen ei ole turvallista, koska se voi altistaa sinut SQL-injektiohyökkäykselle. Kysymysmerkin käyttäminen on paljon parempi ja sen käyttö SQLAlchemy varsinkin kun se tekee kaiken tarvittavan suojatakseen sinua sisäänrakennetulta muokkaukselta yksittäisiä lainauksia mitä SQLite pystyy hyväksymään.

    Merkintöjen muokkaaminen ja poistaminen

    Tilaisuus päivittää tietueita tietokannassasi, tämä on avain tietojesi pitämiseen siistinä ja kunnossa. Jos et voi muokata tietoja, tukiasemasi muuttuu hyödyttömäksi tarpeeksi pian. Joskus sinun on myös poistettava rivejä. Tässä osiossa tarkastellaan molempia kysymyksiä. Ensin virkistetään vähän itseämme.

    Python

    Tässä käytimme komentoa SQL PÄIVITYS päivittääksesi albumitaulukon. Täällä voit käyttää komentoa ASETA muuttaaksesi kenttää, joten meidän tapauksessamme vaihdamme artistin nimeksi John Doe jokaisessa merkinnässä, jossa artistikenttä on Andy Hunterille. Aika yksinkertaista, eikö? Huomaa, että jos et vahvista muutoksia, niitä ei lisätä tietokantaan. Tiimi POISTAA yhtä yksinkertaista. Katsotaanpa.

    Python

    Poistaminen on jopa helpompaa kuin päivittäminen. SQL:ssä se kestää vain kaksi riviä. Tässä tapauksessa meidän tarvitsee vain määritellä SQLite, mistä taulukosta poistetaan (albumit) ja mikä tietue käyttää kohdetta MISSÄ. Niinpä haettiin levyä, jonka artistikentässä oli nimi ”John Doe”, ja sitten näitä tiedot on poistettu.

    SQLite-peruskyselyt

    Tiedustelut osoitteeseen SQLite ovat hyvin samankaltaisia ​​kuin ne, joita käytät muissa tietokannoissa, kuten MySQL tai Postgres. Käytämme yksinkertaisesti normaalia SQL-syntaksia kyselyjen suorittamiseen, ja sitten kohdistinobjekti suorittaa SQL:n. Tässä muutamia esimerkkejä:

    Python

    import sqlite3 conn = sqlite3.connect("mydatabase.db") #conn.row_factory = sqlite3.Rivikursori = conn.cursor() sql = "VALITSE * albumeista WHERE artist=?" cursor.execute(sql, [("Punainen")]) print(cursor.fetchall()) # tai käytä fetchone() print("Tässä" on luettelo kaikista taulukon tietueista:") kohdistimen riville. execute("SELECT rivi, * FROM albumeista ORDER BY artist"): print(row) print("Tulokset LIKE-kyselystä:") sql = "SELECT * FROM albumeista WHERE title LIKE "%"" cursor.execute(sql ) tulosta(kursori.haku())

    Tämä on C-kielellä kirjoitettu kirjasto, joka toimii SQL:n kanssa. Tämä työkalu kuuluu Relational Database Management Systemsiin. Useimmat SQL-tietokannat toimivat asiakas/palvelinpohjaisesti. Otetaan esimerkiksi MySQL. Käytön aikana tietoja otetaan MySQL-palvelimelta ja lähetetään vastauksena pyyntöön. SQLitea käytettäessä tiedot otetaan suoraan levyltä, ts. palvelimeen ei tarvitse ottaa yhteyttä.

    Asennus

    Olemme vuorovaikutuksessa tietokannan kanssa komentoriviliittymän kautta sqlite3(CLI) Linuxissa. Työskennellä sqlite3 CLI MAC OS:ssä ja Windowsissa tehdään samalla tavalla, mutta suosittelen, että käytät 5 minuuttia asennukseen virtuaalikone jotta tietokoneesi ei tukkeutuisi tarpeettomilla ohjelmistoilla.

    Asenna sqlite3 Linuxiin suorittamalla komento:

    sudo apt-get install sqlite3 libsqlite3-dev

    Tämän seurauksena koneesi saa sqlite3. Asenna tämä työkalu muihin käyttöjärjestelmiin noudattamalla ohjeita. Käynnistä sqlite suorittamalla sqlite3-komento konsolissa. Tuloksen pitäisi olla tällainen:

    Toisella rivillä on vihje, että saadaksesi apua sinun on suoritettava komento command.help. Tehdään niin. Tuloksena tulemme näkemään Meta-komennot ja niiden kuvaus.

    Meta-komennot

    Meta-komennot- suunniteltu taulukoiden ja muiden hallinnollisten toimintojen luomiseen. Ne kaikki loppuvat piste. Käydään läpi luettelo komennoista, joista voi olla hyötyä:

    Vakiokomennot

    Käydään nyt lista läpi vakiokomennot sqlite3, jotka on suunniteltu olemaan vuorovaikutuksessa tietokannan kanssa. Vakiokomennot voidaan jakaa kolmeen ryhmään:

    • Tietojen kuvaus Kieli DDL: Komennot luoda taulukko, muokata ja poistaa tietokantoja, taulukoita ja paljon muuta.
  • DML-tiedonhallintakieli: salli käyttäjän käsitellä tietoja (lisää/muuta/poista).
  • DQL-kyselykieli: Mahdollistaa tietojen haun.
  • Muistilappu: SQLite tukee myös monia muita komentoja, joista löytyy luettelo. Koska tämä oppitunti on tarkoitettu aloittelijoille, rajoitamme lueteltuihin komentosarjaan.

    SQLite-tietokantatiedostot ovat cross-platform. Ne voivat sijaita erityyppisissä laitteissa.

    • Sähköposti
    • Kommentti

    Kaikista näistä kentistä vain sivuston osoite voi olla tyhjä. Voimme myös ottaa käyttöön sarakkeen kommenttien numerointia varten. Kutsutaan sitä post_id:ksi.

    Määritetään nyt kunkin sarakkeen tietotyypit:

    Attribuutti Tietotyyppi
    post_id KOKONAISLUKU
    nimi TEKSTI
    sähköposti TEKSTI
    Nettisivun URL TEKSTI
    kommentti TEKSTI

    Löydät kaikki SQLite3:ssa tuetut tietotyypit.

    On myös huomattava, että SQLite3:ssa sarakkeeseen lisätyt tiedot voivat poiketa määritetystä tyypistä. Tämä ei toimi MySQL:ssä.

    Luodaan nyt tietokanta. Jos olet edelleen sqlite3-käyttöliittymässä, kirjoita komento command.quit poistuaksesi. Kirjoita nyt:

    sqlite3 comment_section.db

    Tämän seurauksena sisään nykyinen hakemisto meillä on tiedosto kommentti_osio.db.

    Muistilappu: Jos et määritä tiedostonimeä, sqlite3 luo väliaikaisen tietokannan.

    Taulukon luominen

    Kommenttien tallentamiseksi meidän on luotava taulukko. Kutsutaan sitä kommenteiksi. Suoritamme komennon:

    LUO TAULUKON kommentit (post_id INTEGER NOT NULL PRIMARY KEY AUTOM. LISÄYS, nimi TEKSTI EI NULL, sähköposti TEKSTI EI NULL, website_url TEKSTI NULL, kommentti TEKSTI EI NULL);

    NOT NULL varmistaa, että solu ei sisällä tyhjä arvo. PRIMARY KEY ja AUTOINCREMENT laajentavat kentän ominaisuuksia post_id.

    Varmista, että taulukko on luotu, suorittamalla .tables-metakomento. Tämän seurauksena näemme kommenttitaulukkomme.

    Muistilappu: Saat taulukkorakenteen kirjoittamalla .schema comments

    Nyt voimme syöttää tiedot taulukkoon.

    RIVIEN LISÄÄMINEN

    Oletetaan, että meidän on tehtävä seuraava merkintä:

    Nimi: Shivam Mamgain Sähköposti: [sähköposti suojattu] Verkkosivusto: shivammg.blogspot.com Kommentti: Loistava opetusohjelma aloittelijoille.

    Lisäämiseen käytämme komentoa LISÄÄ.

    INSERT INTO kommentteihin (nimi, sähköpostiosoite, verkkosivun_osoite, kommentti) ARVOT ("Shivam Mamgain", " [sähköposti suojattu]", "shivammg.blogspot.com", "Loistava opetusohjelma aloittelijoille.");

    Post_id-arvoa ei tarvitse määrittää, koska se luodaan automaattisesti AUTOINCREMENT-asetuksen ansiosta.

    Voit täyttää kätesi lisäämällä muutaman rivin lisää.

    NÄYTE

    Käytämme komentoa tietojen hakemiseen VALITSE.

    SELECT post_id, nimi, sähköpostiosoite, website_url, kommentti kommenteista;

    Sama pyyntö saattaa näyttää tältä:

    SELECT * FROM kommenteista;

    Tämän seurauksena kaikki rivit poimitaan taulukosta. Tulos saattaa näkyä ilman sarakerajoja ja ilman otsikkoa. Tämän korjaamiseksi teemme:

    Näytä otsikko kirjoittamalla .headers ON .

    Näytä sarakkeet suorittamalla komento .mode sarake .

    Me toteutamme VALITSE pyytää uudelleen.

    Muistilappu: Näyttötyyppiä voidaan muuttaa .mode meta-komennolla.

    PÄIVITTÄÄ

    Oletetaan, että kenttä sähköposti käyttäjälle "Shivam Mamgain" on vaihdettava muotoon " [sähköposti suojattu]'. Suoritamme seuraavan komennon:

    Tämän seurauksena merkintä muuttuu.

    Muistilappu: Sarakkeen arvo nimi ei välttämättä ole ainutlaatuinen, joten komento voi vaikuttaa useampaan kuin yhteen riviin. Kaikille käyttäjille, joilla on arvo nimi= 'Shivam Mamgain', kenttä sähköposti muutetaan muotoon " [sähköposti suojattu]'. Jos haluat muuttaa tiettyä riviä, sinun on seurattava sitä kentän avulla post_id. Määritimme sen PRIMARY KEY:ksi, joka varmistaa arvon ainutlaatuisuuden.