Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: SQL, VB.NET: VB, Access ja SQL

AimoKulaus [11.01.2007 21:31:10]

#

Teen ohjelmaa Visual Basic 2005:llä. Ohjelma tallentaa hirmuisen läjän tietoja Access-tietokantaan. Tietueita on yli 4 miljoonaa, ja tietokannan koko noin 3 Gigatavua.

Ison tietokannan vuoksi normaali TableAdapter systeemi ei enää onnistukaan. Ohjelma huomauttaa jo heti käynnistyksessä, että muisti täynnä, vaikka sitä on koneessa 2Gt.

SQL kai tallentaa ja päivittää tietoja suoraan tietokantaan. Mutta mistä ihmeestä löydän esimerkkiohjelman SQL-kielen käytöstä tällaisen omassa koneessa olevan Access-tietokannan kanssa? Siis sellaisen joka lisää, päivittää ja lukee tietueita.

Kaikki löytyneet esimerkit käyttävät Sql-serveriä tms, ja ne eivät toimi. Mistä löytyisi toimiva koodi, joka käyttäisi esim sitä Northwind-tietokantaa mallina.

Lisäksi ohjelman pitäisi pystyä syöttämään uusia tietueita ohjelmallisesti. Eli siis Datagrid tms ei onnistu.

BadSource [12.01.2007 07:13:58]

#

Auttaako tämä?

AimoKulaus [13.01.2007 18:57:01]

#

Tuo vetäminen ei onnistu, kohdistin on ja pysyy kieltomerkkinä.

8. In Server Explorer, expand your Access database connection, and then expand Tables.
9. Drag the Employees table to Form1. By default, OleDbConnection1 and OleDbDataAdapter1 are created.

Normaali TableAdapter-systeemin kautta kyllä onnistuisi ellei olisi tuota kokorajoitetta.

Etsiskelen siis edelleen toimivaa esimerkkiä tietokannasta, joka käyttää paikallista tietokantaa suoraan SQL-lauseiden avulla. (Ei siis esim. VB:n mukana tuleen SQL 2005-serverin kautta)

AimoKulaus [13.01.2007 22:20:25]

#

Lukemattomien lukemattomien sivujen selauksen jälkeen osui vihdoinkin yksi esimerkki, josta sai riisuttua oheisen ihan toimivan ohjelman. Tästä sitten pääseekin eteenpäin helpohkosti.

Northwind.mdb on hakemistossa C:\datat

Formille button ja textbox nimeltään txtTuloste
Ensiksi ennen Class-riviä oheiset määritykset, ja loppu on sitten buttonin koodia.

Imports System.Data.OleDb
Imports System.Text

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

        txtTuloste.Multiline = True
        txtTuloste.ScrollBars = ScrollBars.Vertical

        Dim asiakasConn As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & _
                                                               "Data Source=c:\datat\northwind.mdb;")

        Dim asiakasDA As OleDbDataAdapter = New OleDbDataAdapter("SELECT * FROM Customers", asiakasConn)

        asiakasConn.Open()

        Dim asiakasDS As DataSet = New DataSet()

        asiakasDA.Fill(asiakasDS, "Customers")

        asiakasConn.Close()

        Dim pRow As DataRow

        For Each pRow In asiakasDS.Tables("Customers").Rows
            txtTuloste.Text = txtTuloste.Text + pRow("ContactName") + vbCrLf
        Next

    End Sub
End Class

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta