Zum Inhalt springen

streffin

Mitglieder
  • Gesamte Inhalte

    337
  • Benutzer seit

  • Letzter Besuch

Beiträge von streffin

  1. Die Gretchenfrage ist da denke ich WIE man auf die Daten zugreifen möchte.

    Wenn man über eine Intranet Seite, oder mehrere Tools darauf zugreifen möchte, würd ich definitiv auch einen Webservice aufsetzen, der sich dann auf die Datenbank connectet. Dann hätte man eine einheitliche Schnittstelle, was immer was schönes ist. (Lässt sich aber auch über ne DLL lösen die man sich schreiben könnte für den DB Zugriff, Intranet hier mal ausgeklammert)

    Wenn ich nur über >eine< Applikation zugreifen möchte, die mehrere User verwenden, würde ich direkt in der Applikation den DB-Zugriff implementieren.

    Beides ist aber schnell erledigt und nicht sonderlich komplex. Irgendwo im Netz ein XML File ablegen, und mit mehreren Usern drarauf arbeiten, das ist aber... ja wie soll mans sagen, geziehlt selbst ins Knie geschossen kommt denke ich nahe ran.

  2. ich hab vor 2 jahren ma hier un da ma nen scan alt an die Jita routes gestellt, und hab mitm Main in ner Brutix dann die Autopilot shuttles und frigs die sich gelohnt ham weggeschossen :P

    Highlight war nen Shuttel mit 4 researched Cap Ship BPO's, ich ging von BPC's aus was sich dann schon gerechnet hätte ^^

    --> 1 verpufft, 3 gelootet, 3,5mrd isk reicher ;D

    In Eve kann ma so richtig schön fies sein ;)

  3. Also ich hoffe ich habe das richtig verstanden. ;-)

    Es müsste ca. so aussehen:

    UPDATE TABELLE T2 SET T2.WERT = (SELECT T.WERT || ', Birne' FROM TABELLE T WHERE T.ID = T2.ID) WHERE T2.ID = 1;

    Hoffe das passt ;-)

    Ish, das aber unschön.

    
    UPDATE tbl
    
    set field = isnull(field + ',' , '')  + 'birne'
    
    WHERE expressin
    
    

    das wäre syntaxtisch TSQL, unter z.b. Mysql müsstest du isnull durch ifnull() ersetzen.

    Klotzkopp hat allerdings absolut recht darin, dass man sowas normalerweise nicht tut, und es auch gute Gründe hat, so etwas nicht zu tun.

    Gruß

    Sven

  4. Bei dem Thema ist es seeehr relevant was da an DBMS läuft.

    Und zwar im Detail. Die teuren Lizenzen haben da zum Teil seehr nette Funktionen, was die (immer noch schweineteurern) billigeren Lizenzen nicht bieten.

    die recht triviale Möglichkeit per Trigger Updates wegzuschreiben ist halt leider auch recht unperformat wenn da viel auf der DB gemacht wird.

    Gruß

    Sven

  5. Was die Raven angeht ...

    Wenn du die wirklich omni Tanken willst, also ein setup für alles, dann brauchst du entweder die Raven nahezu ausgeskillt (oder einen ***** voll Kohle (***** voll wäre im mrd isk bereich)).

    Zum einen brauchst du die Fitting skills mehr oder wenig gemaxt, damit du genug CPU hast, und die Cap Skill definitiv auf max, damit dir das Licht nicht ausgeht bei der Sache.

    Du fährst viel besser wenn du Mission spezifisch fittest. 2x primary Dmg 1x secondary dmg Hardner + 1 Invu. Dann solltest genug resis haben. Wennd dann noch nen Shield Bosst enhancer und nen XL Shieldbooster (der saugt halt cap wie sonst was, da musste halt immer auf dein Cap Achten dass dir die Hardner nicht ausfallen), oder einen billigeren Faction Shieldbooster fittest dürftest du keine Probleme mit dem Tanken haben.

    Es gibt auch einige sehr nette Faction Medium bis Large Shieldbooster die sehr stromeffizient arbeiten, das wär was das du dir mal ansehen kannst, was die Dinger kosten, und ob es sich für dich rechnet. Aber primär wichtig ist die Resists sehr hoch zu haben.

    Dronen und Missiles immer das nehmen was die Ratten nicht mögen. Bei Missiles ist einfach, da haste genug Platz das du mehrere Sorten mitnehmen kannst, kannst Testweise ja mal einen Launcher mit Kin und einen mit was auch immer der Ratte am meisten weh tut laden und vergleichen was bei rum kommt.

    Bei Drohnen definitiv das was vom Schaden her am besten passt. Und die t2 Dronenskills sind verdammt nützlich in jeder Lebenslage. Durch Droneinterfacing bekommst du nochmal richtig Schaden dazu, und im BS bist du ohne Drohnen in vielen missionen schlicht tot.

    Wenn der Tank mal steht, is die Raven ziemlich idiotensicher, mit dem ding kannst dann praktisch nichts falsch machen ;)

    Es schadet nebenbei auch nicht, bei gelegenheit mal die Gallente cruiser auf lvl4 zu bringen, ne Vexor oder ne Myrmidon sind sehr hübsche ruf Farm Schiffe. Grad die Myrm, die kannst zutanken das ist nimmer schön, die stellste hinten rein, ziehst Stage aggro, dronen raus, und nach paar Minuten is die Stage leer (t2 Dronen solltens da aber scho sein).

    Abhängig vom Fitting kannste so durchaus level 3 Missis machen "lassen" ;)

    Hoffe die Fitting Anregung hilft etwas ;)

    Gruß

    Sven

  6. Das beste was ich bisher hatte, war ein Kunde, der seinen Datenexport im CSV Format haben wollte.

    Das Format schön sauber durchdefiniert .... Textqualifier None.

    Auf den Hinweis dass der Delimiter aber in einigen Freitextfeldern vorkommt, hat er auf biegen und brechen auf seinem Format bestanden (und das war dehren Datenbank Fuzzi).

    Das wär für mich dann so ein Kopf -> Wand Moment.

    Du wirst vermutlich niemanden finden der nicht schon mit "Fehlbesetzungen" zu tun hatte ;)

  7. Ohne wichtige informationen, wie z.b. welches Datenbanksystem dahinter steht und ohne tabellen Struktur :

    
    update tabelle set x = y
    
    WHERE primaryKey in 
    
    (
    
           SELECT top 1 primaryKey 
    
           FROM tabelle 
    
           order by ??? 
    
    )
    
    

    Sollte normal funktionieren.

    Gruß

    Sven

  8. Das ist aber schon ein gehöriger Overhead, wenn du erst das Excel File in .Net ausliest, dass dann in die Datenbank schreibst, joinst, exportierst, und dann per .Net wieder in die Excel schreibst.

    Das ganze dann noch sauber und alles mögliche an Fehlern abfangen.... 2 Min is da seeeeeehr positiv gerechnet

  9. Hoi Günnie,

    den Vergleich machst du am besten / einfachsten per Sverweis Formeln.

    Was das erstellen einer 3. Tabelle angeht, da würde mir jetzt nur copy & paste einfallen. Hier einfach nur die Werte einfügen, und fertig.

    Das kannst du natürlich mit einem simplen makro automatisieren.

    
    Sub bla()
    
        Dim lastRow As Long
    
        Dim lastCol As Integer
    
    
        With Sheets(2)
    
            lastRow = .Cells.SpecialCells(xlLastCell).Row
    
            lastCol = .Cells.SpecialCells(xlLastCell).Column
    
    
            Range(.Cells(1, 1), .Cells(lastRow, lastCol)).Copy
    
        End With
    
        Sheets(3).Cells(1, 1).PasteSpecial Paste:=xlValues
    
    End Sub
    
    
    

    mehr ist es eingentlich nicht

    Gruß

    Sven

  10. Statt das komplette Sheet zu kopieren würde ich an deiner Stelle nur die Range die du brauchst kopieren :

    activesheet.copy --> Range(activesheet.cells(1,1), activesheet.cells(71,9)).copy

    ungetestet sollte aber hinkommen.

    Die Range kannst du auch per Range("A1:B2") angeben, aber ich bekomm jedesmal die Krätze wenn ich nen Columnindex in nen Integer umrechnen muss.

    Gruß

    Sven

  11. Ich weis das ist nicht exakt das ist was du suchst, aber du kannst einen Windows authentification SQL User anlegen, der sich per Passthrough anmeldet.

    Dort kannst dort angeben von welcher Domäne oder von welchem Host der User connecten darf.

    Der User den du angeben kannst / musst, geht von einzelnen Windows User Accounts (incl. Guest), über Usergroups, System Prozesse, so ziemlich alles was Windows an Rechtestruktur zu bieten hat.

    Hoffe es hilft.

    Gruß

    Sven

  12. Hi,

    die Namen waren falsch rum da hast du recht ja. Aber wenn du alle Rechner zählen willst, solltest du normalerweise kein case brauchen, das müsste mit einem count (distinct) erledigt sein. Das kommt drauf an, wie genau die Datenstruktur aufgebaut ist.

    Es ging eher um das Prinzip wie du solche Abfragen auch ohne Subquerys lösen kannst, da Subquerys in aller Regel Performance kosten.

    Gruß

    Sven

  13. Du beschwerst dich wirklich darüber dass ihr unter VS programmieren lernt in der Berufsschule ?

    Wäre dir ein seit 5 Jahren nicht mehr gepflegter Texteditor mit Syntax Highlighting und einen "Compile & run" Button für Java lieber ?

    Das hatte ich zu meiner gigantischen Freude als "IDE"... Ich hätte getötet für eine anständige Entwicklungsumgebung. Und Visual Studio ist eine sehr angenehme.

    Gruß

    Sven

  14. Kleiner Nachtrag ...

    In dem speziellen Fall kannst du das ganze ohne Subquerys abhandeln.

    
    select nodename, 
    
             SUM(CASE WHEN EPOProductProperties.ProductCode LIKE 'VIRUS%'
    
                               AND  EPOProductProperties.DATVer >= CONVERT(nvarchar(4), @VARIABLE1)
    
                               THEN 1 ELSE 0 END
    
                   ) [TotalComputers]
    
             count(NodeName) [Up2DateComputers]
    
    FROM ...
    
    WHERE ...
    
    GROUP BY nodename
    
    

    Alternativ wäre COUNT(CASE WHEN [expresion] THEN nodename else NULL END)

  15. welche standard Datumsformatierung der Server hat ist egal.

    Du schreibst den Datentyp Datetime in die Tabelle, nicht den String zu dem der Server das Datum standartmäsig konvertiert.

    Du konvertiertst einen String zum Datum, nicht umgekehrt.

    Bei deinem Format hier brauchst du :

    DECLARE @beispiel nvarchar(255)

    SET @beispiel = '07.09.2011 15:01:22:660'

    PRINT CONVERT(DATETIME, @beispiel, 104)

    --> : 'Sep 7 2011 3:01PM'

    Gruß

    Sven

  16. Hi,

    mach die Gruppierung mal direkt in den Subquerys.

    Ich geb dir ein Beispiel was dir da die Abfrage zerhaut :

    stell dir gedanklich vor, du hättest nur eine einzige L1ParentID.

    Folgende Annahmen :

    - es gibt nur eine einzige L1ParentID

    - Subquery 1 gibt die 3 Rows zurück

    - Subquery 2 gibt dir 5 Rows zurück

    Folgendes würde passieren :

    Du joinst auf der L1ParentID auf Subquery 1 und bekommst 3 Rows im Recordset, jeweils mit der selben L1ParentID. Jetzt joinst du auf Subquery 2 und bekommst 5 Rows vom Subquery, und joinst wieder auf der L1ParentID.

    Jede deiner 3 Rows, die du bisher hattest, wird jetzt mit den 5 Rows aus Subquery 2 gejoinst, weil die Expresssion in on condition ja in jeder Row true ergibt.

    --> du hast im Recordset jetzt 15 Rows, obwohl du eigentlich nur eine Row bräuchtest.

    Das ist auch der Grund, warum du da count(distinct x) machst, weil du jeden Rechnernamen mehrfach in der Finalen Ergebnismenge haben wirst.

    Wenn dir jetzt überlegst, was passiert wenn du von den Subquerys jeweils sagen wir 100 Rows zurückbekommst, und du mehr als eine L1ParentID betrachtest, dann weist du warum dein Query nicht funktioniert.

    Mich wundert fast dass dir da nichts abschmiert wenn das die TempDB so zumüllt.

    Was du tun musst ist deine Subquerys umschreiben.

    (

    Select Count([distinct] NodeName), L1ParentID

    ...

    GROUP BY L1ParentID

    )

    Dann bekommt du für jede L1ParentID jeweils eine Anzahl, und hast nicht Millionen nutzlose Rows im Recordset. Falls du das distinct nicht mehr brauchst, lass es weg, das kostet durchaus resourcen

    Gruß

    Sven

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...