Jump to content

DaPete

Members
  • Gesamte Inhalte

    10
  • Registriert seit

  • Letzter Besuch

Beiträge erstellt von DaPete

  1. Den Cursor nutze ich schon, funktioniert Prima :)

    Ein bischen stutzig macht mich jetzt eine kleine If Anweisung, im netz habe ich wiedersprüchliche Anweisungen gelesen.

    Die Prüfung ist relativ simple

     

    IF @gn is null

      update1

    else

      update2

    end

     

    So funktioniert es halt nicht.

     

    IF @gn is null then

      update1

    else

      update2

    end

    Geht auch nicht.

     

    als gegentest habe ich

    If @gn is null set @gn = 'Test' -> das geht.

     

    Wie mache ich das if nun damit das Updatestatement ausgeführt wird?

     

    Edit, habs hinbekommen.

  2. Guten Tag,

    ich habe gerade ein großes Problem mit einem Access Tabellen Export.

    Ich nutzen den oben genanntne Assistenten um die Daten in den SQL-Server zu schieben, funktioniert auch zu 90%.

    Probleme macht ein Feld welches Anlagen speichert (Datentyp Anlage). Die Dateien werden nicht übertragen, auf dem SQL-Server wird das Feld zu einem Varchar8000.

    Als ich Testweiße in Access per ODBC Export dies gemacht habe, wurde das Feld zu nText und beinhaltet nur die Dateinamen.

    Kann mir wer helfen?

    Gibt es im SQL ein feld, welches Anhänge abspeichern kann?

    Es geht um Etwa 25.000 Datensätze mit Anhängen.

     

    Access 2013, Windows Server 2008 R2 SP1

     

    Gruß

     

    Pete

  3. Ah, was so ein kleines @ alles ausmacht :)

     

    In meiner Ausbildung bin ich sowas, wie oben schon geschrieben immer schleifenmäßig durchgegangen.

     

    Das sah im etwa so aus.

     

    For r in (select * from tabelle) loop

     

    //hier dann zugriff auf die die einzelnen Werte die durchgelaufen werden

    variable xyz = r.manager

     

    end loop

     

    wenn ich das richtig gelesen habe, gibt es keine for schleife in MS sql, gibt es sowas ähnliches?

  4. Cool das geht schonmal *freu*

     

    Dann steht mir jetzt nur noch eine Frage im weg.

    Das Feld Manager hat ja mehrere Informationen, das würde ich nur auf den Nachnamen des Vorgesetzten reduzieren.

     

    Gedacht waren 2 Variablen für die Start und Endposition.

    while .....

    Startposition =  PATINDEX('%=%',manager)

    laenge =  PATINDEX('%\%',manager)

    lange = laenge - startposition

    Und dann noch ein update auf die Felder jeweils mit update tabelle set manager = substring (manager,startposition,laenge)

    end while blub

    So im etwa die logik, jedoch akzptiert er meine Variablen nie, ich dachte einfach an - declare startpos as varchar(20) - zum beispiel.

     

    Wo mache ich da einen fehler?

  5. Halli Hallo,

    danke schonmal für eure Vorschläge.

    War gerade mal ein bissl am rumbasteln und ausprobieren um die befehle langsam mal zu können.

    Habe es auch mal hinbekommen eine Table aus dem AD zu generieren, mit den Feldern die ich möchte.

    Jedoch gibt es noch folgendes verhalten.

    Mein "Script" geht so vor, das es erst die Tabelle löscht, dann neu erstellt mit den Daten aus dem AD.

    Danach werden alle unnützen Zeilen gelöscht (so die Theorie).

    Tabelle löschen und neu anlegen ist kein Problem.

    Möchte ich jedoch die Zeilen löschen, zeigt er mir in der Where-clause an, "Ungültiger spaltenname".

     

    Hier mal das Script:

    begin
    drop table ad_test_cr
    end
    
    begin
    Select * into ad_test_cr
    
    FROM OPENQUERY
    (ADSI,
    'SELECT department,mail,mobile,telephonenumber,givenname,sn,manager,homephone,pager,ipphone,streetaddress,l,st,postalcode,co,physicalDeliveryOfficeName,wwwhomepage,extensionAttribute1,extensionAttribute2,extensionAttribute3,lastlogon,pwdlastset,title,whencreated
    FROM ''LDAP://srv02........lokal'' WHERE objectCategory = ''Person'' AND objectClass = ''user'' order by sn  ')
    end
    
    begin
    DELETE FROM [master].[dbo].[ad_test_cr]
          WHERE sn is null or (telephonenumber is null and mobile is null)
    end

    Begin und end habe ich zu testzwecken mal eingefügt.

    Nehme ich das delete raus, funktioniert zwar die whereclause beim filtern, jedoch wird dann ja die tabelle nicht mit frischen Daten befüllt.

    Kann mir jemand erklären was der unsinn soll?

  6. Guten Tag,

    ich bin neu und komme direkt mit einem Problem um die ecke :)

    Zuerst kurz zu mir.

    Ich bin ein 24 Jähriger Familienvater sowie gelernter Fachinformatiker Anwendungsentwicklung aus dem grünen Herzen deutschlands. Mein Ausbildungsbetrieb hat mich damals auf Oracle SQL spezialisiert.

    Natürlich bin ich jetzt in einem Unternehmen gelandet, welches keine Oracle Datenbanken zur verfügung stellt.

    Somit habe ich gerade ein wenig mit MS SQL zu kämpfen und komme nun zu meinem Problem.

    Im Intranet gibt es eine Mitarbeiterliste mit Namen, email und Telefonnummern.

    Bis jetzt wurde es vom Sysadmin immer händisch gepflegt (Doppelter-Dreifacher aufwand).

    Mein Vorschlag war, das einmal am Tag ein Dienst startet, der die Tabelle löscht, auf die das Intranet zugreift und mit Daten aus dem AD neu befüllt (Monatliche sind mehrere zu und Abgänge im Betrieb).

     

    Nun habe ich schon folgendes hinbekommen:

     

    SELECT * FROM OPENQUERY
    (ADSI,
    'SELECT department,facsimileTelephoneNumber, mail,mobile,telephonenumber,givenname,sn
    FROM ''LDAP://srv....'' WHERE objectCategory = ''Person'' AND objectClass = ''user'' order by sn  ')

     

    Hier habe ich meines Wissens nach nur ein reines select aller Daten im AD.

     

    Meine Fragen sind nun folgende:

     

    1. Kann man nach Domönenbenutzer noch irgendwie Filtern oder gibt es andere Möglichkeiten zu filten?

        Denn einfach WHERE objectCategory = ''Person'' AND objectClass = ''user'' and telephonenumber is not null .... -> geht irgendwie nicht (Fehler 7321)

    2. Wie mache ich da ein Create table mit, hat das schon mal wer gemacht?

     

    Falls etwas unklar ist einfach sagen.

    Ansonsten danke schonmal für eure Hilfe :)

×
×
  • Neu erstellen...