Welche Datenbank für kommerzielles Programm?

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 30 Antworten in diesem Thema. Der letzte Beitrag () ist von Linkai.

    Welche Datenbank für kommerzielles Programm?

    Habe unter VB.NET ein Programm geschrieben, dass ich nun in kleinem Rahmen kommerziell vermarkten könnte. Allerdings setzt mein Programm beim User eine bestehende Datenbank voraus. Bisher habe ich mein Programm in Verbindung mit einer MySLQ- bzw. MariaDB-Datenbank benutzt. Bei kommerziellem Vertrieb käme zumindest die Nutzung einer MySQL-Datenbank aus lizenzrechtlichen Gründen nicht mehr in Frage. Dies gilt auch in meinem Fall, obwohl ich mit meinem Programm gar keine MySQL-Datenbank-Software ausliefere, sondern sich der User eine solche selbst installieren müsste. Ich verwende derzeit lediglich den MySQL-Connector. Das ganze Linzenrecht-Gedöhns ist ohnehin ein kaum zu durchschaubarer Dschungel.

    Kann mir von euch jemand sagen, welche Datenbank sich für mein Vorhaben anbietet? Ich müsste mein Programm dann natürlich entsprechend anpassen und den Kunden dann eben mitteilen, dass meine Software eine solche Datenbank voraussetzt.
    Ich verstehe das Problem nicht.
    Wenn du die Datenbank nicht mitlieferst kann dir die Lizenz doch auch egal sein.
    Ob der Zugriff auf eine SQL oder mySQL Datenbank erfolgt kann deinem Programm doch egal sein.
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."
    Wenn du's richtig programmiert hast, ist es fast egal, welche DB der Kunde verwendet.
    Sofern nicht spezielle DB-Funktionen (z.B. Stored Procedures) verwendet werden, muss das Programm mit allen SQL-DBs können.
    Allenfalls in der Installationsphase mag vielleicht ein Unterschied sein.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Oder du gibst dem Nutzer die Auswahlmöglichkeit und bindest einfach verschiedene DB-Typen mit in dein Programm ein.
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."
    Wenn man sich an die grundlegenden Dinge gehalten hat und auf Spezialfälle wie objektorientierte Tabellen oder geografische Felder verzichtet hat, sollte der zugrunde liegende SQL-Server irrelevant sein. Er muß nur existieren und die DB muß drauf sein - der Rest ist dann eine Frage des ConnectionString - und nur eine Frage des ConnectionString.
    Er könnte die Datenbank auch als XML speichern.

    Er könnte so viel. Daher mein geäußertes Unverständnis in der ersten Antwort.
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."

    Schamash schrieb:

    Wenn du die Datenbank nicht mitlieferst kann dir die Lizenz doch auch egal sein.
    Ob der Zugriff auf eine SQL oder mySQL Datenbank erfolgt kann deinem Programm doch egal sein.


    Ich benutze derzeit ja den Connector von MySQL. Die GNU GPL Lizenz von MySQL verwehrt es mir, die Software als Closed Source kommerziell zu vertreiben. Dabei spielt es (leider) keine Rolle, wer die Datenbank bereitstellt. Ich darf schlicht den Connector (mysql.data --> mysql.dll) nicht verwenden.

    Ich liebäugele in der Tat mit einer MariaDB-Datenbank. Allerdings stehe ich vor dem Problem, wie ich ohne den MySQL-Connector mit VB zur MariaDB connecten kann. Daher hatte ich hier schon eine entsprechende Frage dazu gestellt: MariaDB verwenden, ohne MySQL-Connector zu benutzen
    du kannst das ganze aber noch komplizierter gestallten und eine große DB bereitstellen, und PHP Files die Arbeit mit der DB machen lassen. Die Anworten daraus ziehst du dir dann via Webclient in VB :)

    So ist zumindest auch kein Connector mehr da. (Zumal das ganze sicherer ist da vom Programm her keine direkte zur DB hergestellt wird.)
    Viele Frauen kamen, viele sind gegangen, eine ist geblieben 12.5.12 <3 ich liebe dich Schatz :love: :love:

    petaod schrieb:

    Du kannst eine MySQL-DB auch mit dem .Net-eigenen Connector ansprechen.


    Wie geht das mit dem NET-eigenen Connector?

    Bisher mache ich das so:

    VB.NET-Quellcode

    1. Imports MySql.Data.MySqlClient '<-- und genau das hier ist ja nicht von der MySQL-Lizenz abgedeckt.
    2. '...
    3. Dim con As New MySqlConnection
    4. Dim cmd As New MySqlCommand
    5. Dim reader As MySqlDataReader
    6. Dim MySQL_Verbindung As String = "Data Source=123.456.789.1;database=Testdatenbank;UID=Testuser;pwd=Testpasswort"
    7. con.ConnectionString = MySQL_Verbindung
    8. cmd.Connection = con
    9. con.Open()
    10. cmd.CommandText = "SELECT nachname FROM testtabelle"
    11. reader = cmd.ExecuteReader
    12. reader.Read()
    13. var_Benutzer_Nachname = CStr(reader("nachname"))
    14. reader.close()
    15. con.close()
    Ich bin nicht sicher aber kannst du nicht einfach das nutzen?

    VB.NET-Quellcode

    1. Public ConStr As String = "DRIVER={SQL Server};SERVER=XXX;UID=XXX;PWD=XXX;DATABASE=XXX;"
    2. Public Con As Odbc.OdbcConnection = New Odbc.OdbcConnection(SHPConStr)
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."
    Wie wärs mit sowas?

    VB.NET-Quellcode

    1. Imports System.Data.SqlClient
    2. Dim SQLStr As String = "SELECT * FROM Global"
    3. Dim SQLConn As New SqlConnection()
    4. Dim SQLCmd As New SqlCommand()
    5. Dim SQLdr As SqlDataReader
    6. Try
    7. SQLConn.ConnectionString = "Data Source=HOSTNAME;Initial Catalog=DATENBANK;User Id=USER;Password=PW;"
    8. SQLConn.Open()
    9. Catch Ex As Exception
    10. MessageBox.Show("Leider ist ein Fehler aufgetreten" & Environment.NewLine & Environment.NewLine & Ex.Message, "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error)
    11. End Try
    12. SQLCmd.Connection = SQLConn
    13. SQLCmd.CommandText = SQLStr
    14. SQLdr = SQLCmd.ExecuteReader
    15. While SQLdr.Read()
    16. Try
    17. MessageBox.Show(SQLdr(0).ToString)
    18. Catch Ex As Exception
    19. MessageBox.Show("Leider ist ein Fehler aufgetreten :( " & Environment.NewLine & Environment.NewLine & Ex.Message, "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error)
    20. End Try
    21. End While

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „OMA“ ()