none
SQL Prozeduren und Funktionen erstellen | VB RRS feed

  • Frage

  • Hallo,

    ich benötige eure Hilfe. Ich versuche im momen 4 Funktionen zu schreiben, aber weiss nicht wie ich anfangen soll. Ich bin relativ neu in SQL, habe mir die Basics angeeignet.

    Ich habe ein VB programm über das ich Daten in die DB hinzufügen will, ändern will und auch löschen möchte. Auch brauch ich eine Funktion die automatisch eine ID erstellt sobald der INSERT durchgeführt wurde für die jewilige Tabelle und Reihe.

    Ich habe schon etwas im Internet geschaut, aber finde einfach keine gute Hilfe wie ich in SQL jetzt solch eine Funktion (zb. Update) über VB aufrufe und somit der Eintrag, vpn VB in SQL übernommen wird.

    zb.

    Max Mustermann (Vorname, Name (SQL Zellen in der Tablle Personen)) --> Datagridview in VB die die jeweilig geladene Tabelle anzeigt, ich dort in den felder den Vorname änder zu Moritz, auf den Button Update drücke und in meine DB der Eintrag so gespeichert wird --> Moritz Mustermann (Vorname, Name).

    Ich hoffe das mir jemand helfen kann bzw mir vll eine herangehensweise erklärt.

    Vielen Dank

    Patrick

    Mittwoch, 6. November 2013 14:10

Antworten

  • ............

    Aber wie man in SQL eine Funktion erstellt ist mir im moment noch schleierhaft.

    ............

     Hallo Patrick,

    im Management-Studio gibt es unter MENUE->Ansicht einen Vorlagen-Explorer, der zeigt wie es geht. Ich vermute aber der kompliziertere Teil liegt zwischen BEGIN und END einer Funktion/Prozedure. Wie hier schon geschrieben, es gibt Unterschiede, was man mit einer Proc oder Func machen kann. Für einfache Insert-, Update- oder Delete-Befehle braucht man so etwas nicht.

    Es sind zwei völlig unterschiedliche Problemkreise. Der eine, wie muss Dein VB-Code aussehen, damit Deine Befehle an den SQL-Server übergeben werden und Du die Egebnisse auslesen kannst. Der andere wie muss der Befehl für den SQL-Server aussehen. Oder anders gesagt, wenn im Management-Studio im Abfrage-Fenster ein Befehl das erwünschte Ergebnis bringt, dann must Du bloss noch klären wie Du beim Client den Befehl/die Befehle als String zusammenbauen kannst und  ihn dem SQL-Server übergibst.

    Gruss Uli

    • Als Antwort markiert LandsHeer Mittwoch, 13. November 2013 14:14
    Freitag, 8. November 2013 06:47

Alle Antworten

  • Hallo Patrick,

    ich weiss nicht ob ich Dich richtig verstanden habe. Wenn die Frage lautet wie kann ich aus VB heraus einen SQL-Server ansprechen kann ich Dir nicht helfen. Ich vermute dann ist dies auch nicht das richtige Forum. Wenn die Frage lautet, welche Befehle muss ich dem SQL-Server übergeben um o.g. Aufgaben zu lösen und wie ist deren Synthax dann bist Du hier richtig. Das mit dem eindeutigen Ident ist ganz einfach zu lösen. Du fügst zu einer Tabelle eine Ident-Collumn hinzu, entsprechende Rechte vorausgesetzt.

    entweder beim Anlegen der Tabelle

    CREATE TABLE [dbo].[mytable](.......,.........., [myident] [int] IDENTITY(1,1) NOT NULL)
     

    oder bei einer existierenden Tabelle

    ALTER TABLE [dbo].[mytable] ADD [myident] [int] IDENTITY(1,1) NOT NULL

    Die Befehle zum anlegen, ändern und löschen von DS müssten so aussehen

    INSERT INTO mytable (feld1,feld1,......)VALUES(wert1,wert2,....)

    UPDATE mytable SET feld1=wert1, feld2=wert2,.... WHERE myident = myidentwert

    DELETE FROM mytable WHERE myident = myidentwert

    Zum SQL-Server gibt es ein Management-Studio ich empfehle Dir damit einmal etwas herum zuspielen auch gibt es eine Online-Hilfe zum SQL-Server, die Dir die Details erläutert.

    Gruss Uli



    • Bearbeitet Uli Münch Donnerstag, 7. November 2013 06:54
    Donnerstag, 7. November 2013 06:53
  • Vielen Dank für deine Hilfe Uli,

    Ja ich mein eher letzteres :).

    Das Management Studio hab ich schon, lässt sich gut damit arbeiten.

    Wie kann ich eine Funktion erstellen mit den Befehlen da drinne, sodass ich über VB eine Call funktion schreibe die die SQL funktion aufruft um zum beispiel Daten von VB in die SQL DB zu packen. Wie das in VB gehandelt wird find ich schon heraus denke ich, das ist soweit ich weiss nur ein "Ein-Zeiler".

    Aber wie man in SQL eine Funktion erstellt ist mir im moment noch schleierhaft.

    Soweit ich weiss:

    CREATE FUNCTION function_name (zb. "InsertFunction")

    INSERT INTO mytable (feld1,feld1,......)VALUES(wert1,wert2,....)

    END

    oder wie genau geht das ?

    Vielen Dank schonmal

    Gruss Patrick

    Donnerstag, 7. November 2013 07:59
  • Hallo Patrick,

    ich glaube nicht, das Du mit den SQL-Funktionen weiter kommst. Vielmehr vermute ich das Du die entsprechenden SQL-Befehle bereits in VB zusammen bauen mußt und dies ist bestimmt auch nicht mit einem "Ein-Zeiler" getan.

    Schau Dir bitte mal folgenden Link an, dort ist beschrieben wie aus VB heraus die Verbindung zur DB aufgebaut wird und wie die entsprechenden Kommandos abgesetz werden müssen.

    Galileo Computing - Einstieg in VB 2010


    Gruß Falk

    Blog Falk Krahl

    Donnerstag, 7. November 2013 09:52
  • Hallo Patrick,

    In einer UDF (Function) kannst Du keine INSERT/DELETE/UPDATE Statments ausführen, dafür solltest Du besser Stored Procedures verwenden => CREATE PROCEDURE (Transact-SQL)


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    Donnerstag, 7. November 2013 10:19
  • ............

    Aber wie man in SQL eine Funktion erstellt ist mir im moment noch schleierhaft.

    ............

     Hallo Patrick,

    im Management-Studio gibt es unter MENUE->Ansicht einen Vorlagen-Explorer, der zeigt wie es geht. Ich vermute aber der kompliziertere Teil liegt zwischen BEGIN und END einer Funktion/Prozedure. Wie hier schon geschrieben, es gibt Unterschiede, was man mit einer Proc oder Func machen kann. Für einfache Insert-, Update- oder Delete-Befehle braucht man so etwas nicht.

    Es sind zwei völlig unterschiedliche Problemkreise. Der eine, wie muss Dein VB-Code aussehen, damit Deine Befehle an den SQL-Server übergeben werden und Du die Egebnisse auslesen kannst. Der andere wie muss der Befehl für den SQL-Server aussehen. Oder anders gesagt, wenn im Management-Studio im Abfrage-Fenster ein Befehl das erwünschte Ergebnis bringt, dann must Du bloss noch klären wie Du beim Client den Befehl/die Befehle als String zusammenbauen kannst und  ihn dem SQL-Server übergibst.

    Gruss Uli

    • Als Antwort markiert LandsHeer Mittwoch, 13. November 2013 14:14
    Freitag, 8. November 2013 06:47