SQL ohne DB

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    SQL ohne DB

    Hallo Liebe Community,

    Ich habe eine SQL Datenbank ohne SQL SERVER erstellt mit der compact version.

    Derzeitig Kann ich Datenbank erstellen
    Tables hinzufügen
    Spalten füllen.
    Jedoch habe ich vor eine ganze Menge an Insert anweisungen auszuführen.
    Was ist die Beste allternative?

    Ich habe derzeitig versucht
    Über Befehl vorher Deffeniert um In die Datenbank einträge zu adden.
    Nur handelt es sich bei meinen Vorhaben um weit über 500.000 INSERT anweisungen

    So viel text im VB lässt ihn abschmieren hat jemand eine idee?

    Habe drüber nachgedacht eine Textdatei zu verwenden jedoch wüsste ich nicht wie genau

    BEFEHL(" & My.Computer.Filesystem.ReadallText(Dateiname) & ")
    und eine Kurze frage noch ist es möglich wenn ja wie eine Datei im Projekt einzubinden.So das wenn ich das Programm jemand anderen Schicke er auch die Textdatei laden könnte?

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „crazybaby“ ()

    • Tables hinzufügen
      wozu das? gewöhnlich setzt man die DB einmal auf, und dann ist sie Fakt. Veränderungen anne DB-Struktur erfordern Umprogrammierung der Anwendung
    • Spalten füllen
      Spalten kannman nicht füllen. Man kann Tabellen füllen
    • Jedoch habe ich vor eine ganze Menge an Insert anweisungen auszuführen.
      Nanu? Normalerweise hat man pro Tabelle genau eine Insert-Anweisung - nämlich, um einen Datensatz zuzufügen
    zu 1. Tables hinzufügen, wenn man die Datenbank beim Kunden nicht ändern darf, aber das Programm erweitern möchte -- hier ist nen Script sehr sinnvoll

    1. @ crazybaby ne ganze Menge Insert Anweisungen --> da ist was falsch poste mal deine Quellen hier


    2. Es gibt z.b. bei SQLITE die vorgabe, dass man maximal 500 Einträge pro Insert machen kann! Also sowas existiert wirklich.

    1. Zähle deine Einräge, nenn es Eintragsmaximalzahl
    Einfachste Variante um sowas zu umgehen ist sich nen Counter zu bauen und den via Modulo zu prüfen und sobald er 500 hat oder dein Counter = Eintragsmaximalzahl ist , einen Insert Befehl zu machen,

    crazybaby schrieb:

    Es handelt sich um 6 Tabeles eines SQL Servers die ich für andere ohne SQL Server zur verfügung stellen möchte
    Es hat zwar nix mit Tabellen erstellen, Spalten füllen, vielen Insert-Commands zu tun, aber Leute ohne SqlServer können total problemlos DB-Programmierung ohne Datenbank nutzen.

    Und natürlich ists auch ein Klacks, Tabellen vom SqlServer in ein typDataset zu laden, und letzteres als Xml-Datei auf Platte zu schreiben, zu verschicken oder whatever.
    Also ein teil der Insert anweisungen kann ich gern posten aber ich weiß das es in einer table allein schon über 100.000 Einträge gibt dann die 2. größte mit 30.000 knapp die anderen sind kleiner mit zwichen 10.000 und 15.000 Einträgen.


    INSERT INTO [Resource1] ([name], [group_id],

    Quellcode

    1. , [value]) VALUES (N'brood_amazone', N'0', N'6', N'Amazon');
    2. INSERT INTO [Resource1] ([name], [group_id], [code], [value]) VALUES (N'smsg_quest_end', N'0', N'10', N'Fertig');
    3. INSERT INTO [Resource1] ([name], [group_id], [code], [value]) VALUES (N'smsg_choose_ok', N'0', N'11', N'Bestätigen');
    4. INSERT INTO [Resource1] ([name], [group_id], [code], [value]) VALUES (N'smsg_choose_cancel', N'0', N'12', N'Abbrechen');
    5. INSERT INTO [Resource1] ([name], [group_id], [code], [value]) VALUES (N'smsg_buildup_fail', N'0', N'13', N'Versuch gescheitert');
    6. INSERT INTO [Resource1] ([name], [group_id], [code], [value]) VALUES (N'smsg_name_not_available', N'0', N'17', N'Dein Name enthält ungültige Zeichen.');
    7. INSERT INTO [Resource1] ([name], [group_id], [code], [value]) VALUES (N'smsg_name_duplicate', N'0', N'18', N'Dieser Name ist bereits vergeben.');
    8. INSERT INTO [Resource1] ([name], [group_id], [code], [value]) VALUES (N'smsg_choose_allow', N'0', N'19', N'Annehmen');
    9. INSERT INTO [Resource1] ([name], [group_id], [code], [value]) VALUES (N'smsg_choose_reject', N'0', N'20', N'Ablehnen');
    10. [code=vbnet] Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.ClickDim Engine As New SqlCeEngine Engine.LocalConnectionString = "datasource = C:\Users\xyz\Desktop\Neuer Ordner (12)\db1.sdf" Engine.CreateDatabase()
    11. End Sub
    12. Sub Befehl(ByVal SQL As String) Dim cn As New SqlCeConnection Dim cmd As New SqlCeCommand
    13. cn.ConnectionString = "datasource = C:\Users\xyz\Desktop\Neuer Ordner (12)\db1.sdf" cmd.Connection = cn cmd.CommandText = SQL cn.Open() cmd.ExecuteNonQuery() cn.Close()
    14. End Sub
    15. Sub Abfrage(ByVal SQL As String) Dim cn As New SqlCeConnectionDim cmd As New SqlCeCommand
    16. cn.ConnectionString = "datasource = C:\Users\xyz\Desktop\Neuer Ordner (12)\db1.sdf" cmd.Connection = cn cmd.CommandText = SQL Dim da As New SqlCeDataAdapter(cmd) Dim dt As New DataTable cn.Open() da.Fill(dt) cn.Close() DataGridView1.DataSource = dt End Sub
    17. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click Try Befehl("CREATE TABLE [Resource1] ([id] int NOT NULL IDENTITY(1,1) ,[X] int NOT NULL ,[Y] int NOT NULL ,[Ort_name] nchar(256) NOT NULL )") Catch ex As Exception End Try End Sub
    18. Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click Dim fileReader As System.IO.StreamReader fileReader = My.Computer.FileSystem.OpenTextFileReader("C:\Users\Kai\Desktop\WarpListe111.sql") Dim stringReader As String stringReader = fileReader.ReadToEnd MsgBox(stringReader) Befehl("""" & stringReader & """")
    19. End Sub
    20. Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click Abfrage("Select * From [WarpListe]") End Sub


    Okay Xml Also meine daten auslesen lassen aus Meiner SQL SERVER version ist kein Problem doch wie speicher ich sie in ein Xml format und vorallem binde es ins Projekt ein so das wenn z.B Person x es aufmacht auch direkt zur verfügung steht


    Dies ist erstmal ein wenig zum rumtesten am Ende möchte ich dann nur noch sagen wenn db vorhanden dann passiert nichts
    wenn aber nicht vorhanden dann
    create tabeles und
    insert das und das in verschiedene tables

    beim klicken auf einen button z.B warpliste
    öffnet sich dann direkt alles was in der Db drin steht / db ohne programmierung also SQLCE
    so soll es am ende werden

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „crazybaby“ ()