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.
Auttaako tämä?
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)
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
Aihe on jo aika vanha, joten et voi enää vastata siihen.