Zum Inhalt springen

Honkytonk

Mitglieder
  • Gesamte Inhalte

    473
  • Benutzer seit

  • Letzter Besuch

Beiträge von Honkytonk

  1. Moin,

    Da hast du ja ein schönes Problemchen. Anscheinend sind deine Spalten TEXT oder NTEXT, daher kann die Replace-Funktion darauf nicht direkt arbeiten. Das hat der Compiler gemerkt und die Prozedur nicht angelegt, der Rest ist Folgefehler...

    Unter SQL2005 wäre die Umwandlung kein Problem, da es dort einen Datentyp namens nvarchar(max) gibt. Dieser steht dir auf deinem 2000er System leider nicht zur Verfügung. Bevor ich mir die Mühe geb und ein Script für ein Update auf eine temporäre Tabelle zu schreiben, würde es evtl auch reichen, die ersten 4000 Zeichen zu übertragen?

    Gruß,

    Honky

  2. Ok, dann hab ichs jetzt verstanden.

    Füge mal in die Zeilen des Selects wo ein varchar ausgelesen wird folgendes ein:

    REPLACE(REPLACE([I]<Spaltenname>[/I], char(10) , ' '), char(13),' ') AS [I]<gewünschter_Alias>[/I]
    ... also ...
    REPLACE(REPLACE(T0.ItemName, char(10) , '  '), char(13),'  ') AS 'Artikelbeschreibung deu kurz'

    (Hab jetzt mal angenommen, dass in der Spalte Text steht. :D bcp dann natürlich ohne "-r", da hatten wir uns dann misstverstanden ;))

    Edit:

    Die Replace-Funktion ersetzt einfach das Vorkommen von carriage return und linfeed durch blank. Vielleicht solltest du die Gegenseite fragen, ob du die nicht einfach maskierst indem du in den String gleich <br> o.ä. einfügst...

  3. Also das Excel damit Probleme hat, kann ich mir gut vorstellen, da ja keinerlei Zeilentrenner gesetzt werde. Für Excel sieht es also dann so aus, als wenn viele Spalten nebeneinander stehen. Und bei 256 Spalten ist dann natürlich Schluss (Spalte IV). Aber Excel ist ja auch nicht deine Zielanwendung wenn ich das richtig verstanden habe...

    Wie liest denn die Gegenseite die Datei ein? Sie muss ja auch irgendetwas fest machen, dass die Zeile zuende ist? (bestimmte Anzahl der Felder?)

  4. Okay, dann sollten wir das Format auf UTF-8 belassen.

    Inwiefern hast du denn nun mit Zeilenabschlusszeichen getestet?

    z.B.

    bcp "exec <deine_datenbank>..stprGetCSVData" queryout <name_der_gewünschten_csv_datei> -S <server_name> -U <benutzer> -P <passwort> -t ";" [B]-r "\0"[/B] -c
    bzw.
    bcp "exec <deine_datenbank>..stprGetCSVData" queryout <name_der_gewünschten_csv_datei> -S <server_name> -U <benutzer> -P <passwort> -t ";" [B]-r ""[/B] -c

    (letzteres sollte keinerlei Zeichen am Ende einer Zeile erzeugen, ersteres ein nicht-sichtbares Nullabschlusszeichen)

  5. Hatte gerade nen kleinen Denkfehler. Auf Keys kann man natürlich gleich nen Index legen lassen... Zusätzliche Indizes wie z.B. auf accnr musst du extra setzen.

    
    CREATE TABLE docstatus
    
    (
    
       id          int   NOT NULL,
    
       accnr       int   NOT NULL DEFAULT ((0)),
    
       CONSTRAINT [id] PRIMARY KEY NONCLUSTERED (id)
    
    )
    
    CREATE NONCLUSTERED INDEX [IX_docstatus_accnr] ON docstatus 
    
    (
    
       accnr
    
    )
    
    GO  
    
    

    Gruß,

    Honky

  6. Re-Hallo!

    Öhm, was erwartet die andere Seite denn als Formatierung?

    Passend zum Trennzeichen der Spalten (Feldabschlusszeichen), gibt es auch Zeilenabschlusszeichen (-r). Mehr dazu hier

    Option -C erwartet normalerweise nur ACP, OEM , RAW oder die Codepage-Nummer. Weiß nicht ob du da direkt "UTF-8" angeben kannst. (Übersicht über die Codepages findest du hier)

    Gruß,

    Honky

  7. Nichts leichter als das...

    Habe jetzt 1:1 das Select aus deinem ersten Post übernommen (zugegeben, habs ein wenig eingerückt :D). Speicher den Code einfach in eine .sql-Datei ab ...

    
    
    USE <deine_datenbank_wo_die_tabellen_liegen>
    
    GO
    
    
    IF EXISTS(SELECT * FROM sysobjects WHERE type = 'P' AND name = 'stprGetCSVData')
    
    	DROP PROCEDURE stprGetCSVData
    
    GO
    
    -------------------------------------------------------------------------------------------
    
    -- stprGetCSVData				
    
    --
    
    -- erstellt von: Honkytonk
    
    -- erstellt am : 10.08.2007
    
    --
    
    -- Aufgabe:		Ermittelt die Daten für das Report-XML-Schema
    
    -------------------------------------------------------------------------------------------
    
    CREATE PROCEDURE [dbo].[stprGetCSVData] 
    
    AS 
    
    
    SELECT	    T0.ItemCode, 
    
    		T0.ItemName AS 'Artikelbeschreibung deu kurz', 
    
    		T3.FirmName AS 'Marke', 
    
    		T0.SuppCatNum AS 'Lief.art.nr.',
    
    		T0.SalUnitMsr AS 'ME', 
    
    		T0.VatGourpSa AS 'SteuerID', 
    
    		T0.OnHand, 
    
    		T0.UserText AS 'Artikelbeschreibung deu lang',
    
    		T0.U_Descrip2 AS 'Artikelbeschreibung ital kurz', 
    
    		T0.U_Detail2 AS 'Artikelbeschreibung ita lang',
    
    		T0.U_Descrip1 AS 'Aritkelbeschreibung eng kurz', 
    
    		T0.U_Detail1 AS 'Artikelbeschreibung eng lang', 
    
    		T0.U_webshop AS 'Aktiv',
    
    		T0.U_webVfb2 AS 'Liefertage', 
    
    		T0.U_webVfb1 AS 'Sortierung', 
    
    		T1.Price AS 'VK-Preis', 
    
    		T0.U_EPA_spec AS 'Angebot',
    
    		T0.U_mk1bez AS 'Groesse', 
    
    		T0.U_mk2bez AS 'Farbe', 
    
    		T0.U_farbeI AS 'Farbe ita', 
    
    		T0.U_farbeE AS 'Farbe eng',
    
    		T1.Price, 
    
    		T1.PriceList, 
    
    		T0.U_wgrpnr AS 'Gruppe', 
    
    		T0.U_EPAObjID AS 'UGR', 
    
    		T0.U_EPA_supr AS 'UGR_2', 
    
    		T0.U_EPA_crss AS 'Artikelzusätze', 
    
    		T0.QryGroup1 AS 'Damen', 
    
    		T0.QryGroup2 AS 'Herren', 
    
    		T0.QryGroup3 AS 'Kinder', 
    
    		T0.QryGroup4 AS 'Erwachsene', 
    
    		T0.U_EPA_prod AS 'Versandkostenfrei'
    
           FROM OITM T0 
    
    INNER JOIN ITM1 T1 
    
    	   ON T0.ItemCode = T1.ItemCode 
    
    INNER JOIN OMRC T3 
    
    	   ON T0.FirmCode = T3.FirmCode
    
          WHERE T0.U_webshop ='Y' 
    
    	  AND T1.PriceList =2
    
    
    go
    
    
    
    .. und führe sie mit
    [I]osql -S . -E -i <dein_datei_name>.sql[/I]
    aus. Der BCP-Aufruf reduziert sich dann auf
    bcp "exec [I]<deine_datenbank>[/I]..stprGetCSVData" queryout [I]<name_der_gewünschten_csv_datei>[/I] -S [I]<server_name>[/I] -U [I]<benutzer>[/I] -P [I]<passwort>[/I] -t ";" -c

    Viel Spaß beim ausprobieren...

    *Kaffee schlürf*

  8. Macht ja nix.

    Sollte eigentlich reichen wenn du in deine FROM-Clause die Voll-Referenzierung einpflegst, also

    FROM [B][I]<meine_DB>[/I]..[/B]OITM T0 INNER JOIN [B][I]<meine_DB>[/I]..[/B]ITM1 T1

    Deswegen wär´s evtl. besser wenn du den ganzen Kram in eine Stored Procedure wirfst und die auf der entsprechenden DB ablegst. Dann müsstest du nur die aufrufen...

    Gruß,

    Honky

  9. Meiner Meinung nach ist das bcp-Tool für deine Sache deutlich geeigneter, da es für den (Im- &) Export von Daten gedacht ist.

    Versuch mal auf der Kommandozeile

    
    bcp "[I]<dein_statement>[/I]" queryout [I]<name_der_gewünschten_csv_datei>[/I] -S [I]<server_name>[/I] -U [I]<benutzer>[/I] -P [I]<passwort>[/I] -t ";" -c 

    Wenn du über die integrierte Windowssicherheit kommst, kannst du "-S <server_name> -U <benutzer>" streichen und durch "-T" (Trusted Connection) ersetzen.

    Gruß,

    Honky

    PS: Um es übersichtlicher zu machen kannst du dein Select auch in einer Stored Procedure speichern und stattdessen nur "exec <Prozedurname aufrufen>"...

  10. Ahso, ich vergaß

    Ein Backup erzeugst du mit

    
    use master
    
    go
    
    
    BACKUP DATABASE <datenbank_name>
    
    TO DISK = '<pfad_wo_du_es_hin_haben_möchtest>\<der_name>.bak'
    
       WITH FORMAT, 
    
       NAME = 'Datenbank-Dump'
    
    go
    
    
    Das kannst du dir auch einfach in eine Text-Datei kopieren (z.B. backup.sql) und mittels
    
    osql -S . -E -i backup.sql -o output.txt
    
    

    ausführen.

    Beachte, dass der Pfad vom Server aus gelesen wird. Sollte der bei dir lokal laufen ist es natürlich der gleiche. Ansonsten kann man auch nen UNC-Pfad eintragen und auf nen Netzwerk-Share schreiben (da muss dann allerdings der Account unter dem der SQL-Server-Dienst läuft, Schreibrechte haben)

    So erstmal viel Spaß beim Ausprobieren...

    Gruß,

    Honky

  11. Alles klar. Dann hast du die Gratis-Engine vom SQL Server 2000, die ohne grafische Tools ausgeliefert wird. Kommandozeilen-Tools sind trotzdem dabei. Das Programm welches du suchst ist die osql.exe. Diesem kannst du die Befehle als string oder Datei mitgeben.

    Die Frage des Logins muss nicht unbedingt kompliziert sein, dank integrierter Windows-Sicherheit. Mitglieder der Lokalen Administratoren-Gruppe sind bei der Default-Installation auch in der Administratoren-Gruppe des SQL-Servers. Wenn nicht, solltest du es trotzdem erstmal mit der Integrierten Sicherheit probieren. Dein Programm muss ja schließlich auch die Verbindung aufmachen. Ansonsten musst du das Login irgendwie herausfinden... Früher ließ es der Server zu das der sa ohne Passwort angelegt werden konnte (wäre die letzte Möglichkeit, die mir spontan einfiele)

    Versuch mal auf der Kommandozeile:

    osql -S . -E -Q "select [name] from sysdatabases" -o output.txt

    (wenn der Datenbank-Server nicht lokal bei dir installiert ist tausche "." einfach gegen den Rechnernamen... "." ist beim SQL-Server der localhost)

    Der Befehl schreibt dir schonmal alle verfügbaren Datenbanken in die output.txt (master, model, msdb, tempdb sind Systemdatenbanken...)

  12. Moin,

    Vorneweg du hier MSSQL & Microsoft Sql Server, meinen alle die gleiche Software. Unterschiede gibt´s natürlich eher in den Versionen (z.B. Microsoft SQL Server 2005) und Editionen der Versionen (Express, Workgroup, Standard , Enterprise). Welche nutzt denn deine Software?

    Einloggen tust du dich im übrigen bei jedem Zugriff auf die Datenbank. Was du wahrscheinlich meinst ist eine grafische Oberfläche um Abfragen auszuführen.. Auch hierbei kommt es natürlich auf die Version an die ihr einsetzt.

    Falls du die Installations-CDs (DVDs) zur Hand hast, findest du darauf die SQL-Server Tools. Die kannst du dir auch lokal auf deinem Client installieren. Beim SQL Server 2000 heißt das Abfrage-Tool "Query Analyzer" und die Verwaltungs-Oberfläche "Enterprise Manager", ab 2005 wurde alles zu dem "SQL Server Management Studio" zusammengeführt.

    Falls du sie nicht zur Hand hast, kannst du dir direkt von Microsoft das SQL Server Management Studio Express herunterladen. Die funktioniert für Abfragen sowohl für die 2000er als auch die 2005er Version. Nur bei der Verwaltung gibt es in Richtung 2000er Einschränkungen.

    Darüber solltest du Backups machen können (jobgesteuert). Du eine Sql Server Express Edition hast, musst du das Backup per SQL über die Kommandozeile aufrufen. Aber versuch erstmal die oben genannten Tools...

    Gruß,

    Honky

  13. Aber das ist rechtswidrig ! Das heißt, wenn da einer von der GEZ kommt bzw. etwas von Ihnen kommt, muss ich mich nicht dazu äußern?

    DU musst dich ja auch nicht äussern.

    Auskünfte aus dem Melderegister durch dritte (also nicht nur die GEZ, sondern durch jede x-beliebigen) sind zulässig. (siehe Melderegisterauskunft)

    Bei Auskünften zu Kfz-Halterdaten verhält es sich allerdings anders, da greift das § 39 StVG (Übermittlung von Fahrzeugdaten und Halterdaten zur Verfolgung von Rechtsansprüchen). Danach dürfen Daten nur herausgegeben werden wenn sie zur Befriedigung oder Abwehr von Rechtsansprüchen im Zusammenhang mit der Teilnahme am Straßenverkehr stehen. Dies ist bei Nicht-Zahlen der Rundfunkgebühren meiner Laien-Meinung nicht der Fall. Im Jahr 2003 teilte "unser" Datenschützer in S-H zumindest diese Meinung (Kapitel 14.4, auch wenn es dort um KFZ-Händler ging)...

    (Angaben ohne Gewähr, da Laien-Meinung)

  14. Der Klassiker schlechthin ist doch...

    Hotliner: Guten Tag, was kann ich für Sie tun?

    DAU: (sehr aufgeregt) Liebe Hotline, ich habe das Internet gelöscht!!

    HL: (verkneift sich das Lachen, antwortet sehr bestimmt.) Ach, Sie waren das? Wir suchen Sie schon überall!

    DAU (verzweifelt): Was soll ich denn nur tun?

    HL: Keine Sorge, wir haben ein Backup, das schicke ich Ihnen gleich mal...

    (kam hier seit 2000 bestimmt schon öfters vor ;))

  15. Meine bisherigen Fahrzeuge

    1. 1998 - 2003: Toyota Corolla Liftback dunkelgrün-metallic
      (Bj 92, 90 PS, Benziner, Verbr. ca. 10 Ltr / 100 Km)
    2. 2003 - 2006: Ford Focus Kombi blau-grün-metallic aka. "aquarius"
      (Bj. 2000, 90 PS, Diesel,Verbr. ca. 6.5 Ltr / 100 Km)
    3. 2006 - Ende Juli: BMW 1.18d saphirschwarz-metallic
      (Bj 2006, 124 PS, Diesel, Verbrauch ca. 5.7 Ltr / 100 Km)
    4. Ende Juli - Juli 2007: BMW 1.18d saphirschwarz-metallic
      (Bj 2007, 140 PS, Diesel, Verbrauch weiß noch nich)

    Vom Fahrstil bin ich deutlich ruhiger geworden. Zwischen Kiel und Hamburg kommt meist morgens der Tempomat mit irgendwas zwischen 130 und 140 KmH rein. Spart Sprit und Nerven. Ich bin aber mal gespannt auf meinen "neuen"...

  16. Also mit Anzeigen habe ich im speziellen keine Erfahrung. Aber subjektiv wirkt auf mich eine Anzeige wie "ich möchte, dass sich Firmen bei mir melden, nicht ich bei denen", was natürlich anders rüberkommt wie eine Initiativ-Bewerbung. Wie gesagt, ist eine rein subjektive Meinung.

    Auf dem Xing-Marketplace auch nichts gefunden? (Hatte ein ehemaliger Arbeitskollege Glück...)

    [OT]

    Super Jungs.

    [/OT]

  17. Also wir haben uns bei der Suche nach unserer letzten Wohnung irgendwann nur auf die Zeitungen beschränkt. Oft waren die Wohnungen im Internet lange nicht mehr zu haben (Makler beschränken sich anscheinend darauf Einträge einzustellen, Geld zu kassieren und nicht das Angebot zu pflegen) oder es reagierte ewig keiner auf eine Anfrage...

    Zugegeben, für die Zeitung muss man recht früh aufstehen, etwas mehr suchen (mehr die Filterung nach Anzahl der Zimmer und Miete/Kauf gibt Papier ja meist nicht her ;)) und natürlich auch mehr telefonieren. Allerdings konnte man die meisten Wohnungen noch an dem Tage besichtigen.

    Für Wohnungssuche in der Fremde kann ich eigentlich nur nen Maklerdienst empfehlen, da man ja meist Stadtteile und Preislagen kaum kennt. Wenn man denen eine möglichst konkrete Beschreibung liefert, kommt auch gut was dabei rum. (hat mein Cousin jetzt in Bremen hinter sich). Nachteil kostet halt Geld.

  18. Also bei mir variieren die Blogs öfters mal, sicherlich auch öfters den Themen angeglichen an denen ich arbeite. Genannte also hier nur die, deren RSS-Feed ich seit längerem abonniert habe...

    Fachlich:

    Rockford Lhotka (Schon wegen seines guten Business Framework(s) die ganze Seite)

    Brad Abrams (Der Mann von Microsoft zum Thema Design Guidelines, Managed code und .NET Framework, aktuell interessantes zu ASP.NET und Silverlight)

    Daniel Cazzulino (Interessantes zu .NET & XML)

    Don Box (Eher Pflicht, zugegeben.. alle Theorien lese ich mir auch nicht durch)

    Sonstiges:

    beetfreeq (Nette Rezepte :D)

    Kris Köhntopp (Exil-Kieler... Ok, halbfachlich, habe zu seiner Zeit bei Netuse mal einen Vortrag gehört, gute Artikel zum Thema Datenschutz & MySQL, aber auch sonst ganz nette Themen)

    MC Winkel (Unterhaltung muss sein, Kieler müssen unterstützt werden ;))

    5 Filmfreunde (Gute Film-Rezensionen)

    St. Burnster (Gute Musik und traurig schöne Geschichten)

  19. Sicher tun sie das. Allerdings bin ich der Meinung, dass mit dtsx nicht unbedingt alles besser geworden ist. dts war klasse, da einfach zu designen und zu verwalten. Hab noch niemanden getroffen, der nicht innerhalb einer kürzeren Zeitspanne damit zurecht gekommen ist. Bei dem 2005er dtsx sieht das schon anders aus. Allein die Migration hat mich manches Mal echt Nerven gekostet. Von der Fehleranalyse im Ausführungsfenster ganz zu schweigen.

    Daher der Hinweis auf T-SQL oder BCP als "bessere" (kann man sicherlich streiten drüber ;)) Idee.

    Gruß,

    Honky

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...