-
Gesamte Inhalte
473 -
Benutzer seit
-
Letzter Besuch
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Beiträge von Honkytonk
-
-
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. 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...
-
habe grad einen Lösungsansatz bekommen: man sollte bereits in der SELECT Zeile die Zeilenumbrüche (\n oder \n\r) durch "" ersetzen. Sagt dir das was?
Und wenn ja, wie sollte der in der Praxis ausschaun?
Du meinst in deinen Daten stehen schon Zeilenumbrüche drin? Hmm, lass mich mal kurz grübeln...
-
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?)
-
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)
-
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
-
Möchtest du nur einen Schlüssel oder einen Index anlegen? Ersteres geht innerhalb der CREATE TABLE-Anweisung, letzteres wäre ein separater Befehl. (korrigier mich sonst wer, habe bis jetzt nichts gegenteiliges benutzt bzw. wäre mir bekannt...)
-
Sorry, hatte die Tage es nicht geschafft zu antworten. Dann versuch einfach mal als -C OEM (Windows-Standard) oder RAW (ohne alles).
-
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
-
Ähm, hast du die Prozedur mit dem Code denn nochmal neu angelegt oder hast du das Select auf der DB ausgeführt? Welchen Datentyp hat denn die Spalte?
(morgen kann sonst erst morgen wieder richtig testen, lt. T-SQL Referenz sollte die Syntax aber stimmen )
-
Moin,
Ersetze z.B. T1.Price AS 'VK-Preis'
einfach durch
ROUND(T1.Price,2) AS 'VK-Preis' ...
Gruß,
Honky
-
Nichts leichter als das...
Habe jetzt 1:1 das Select aus deinem ersten Post übernommen (zugegeben, habs ein wenig eingerückt ). 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 aufbcp "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*
-
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
-
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>"...
-
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 mittelsosql -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
-
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...)
-
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
-
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)
-
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 )
-
Meine bisherigen Fahrzeuge
- 1998 - 2003: Toyota Corolla Liftback dunkelgrün-metallic
(Bj 92, 90 PS, Benziner, Verbr. ca. 10 Ltr / 100 Km) - 2003 - 2006: Ford Focus Kombi blau-grün-metallic aka. "aquarius"
(Bj. 2000, 90 PS, Diesel,Verbr. ca. 6.5 Ltr / 100 Km) - 2006 - Ende Juli: BMW 1.18d saphirschwarz-metallic
(Bj 2006, 124 PS, Diesel, Verbrauch ca. 5.7 Ltr / 100 Km) - 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"...
- 1998 - 2003: Toyota Corolla Liftback dunkelgrün-metallic
-
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]
-
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.
-
Hm, ich finde ein Entwickler sollte nicht nur die Sprache und Konfiguration der Laufzeitumgebung kennen, sondern sich auch mit der Konzeptionierung hinter der ganzen Sache beschäftigen. Im Bereich .Net Framework sehe ich da erstmal Patterns & Practises.
"Um schlecht zu programmieren bedarf es eigentlich keiner speziellen Sprache..."
(Don Box)
-
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 )
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)
-
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
Script für Datenbankabfrage in SQLServer2000
in Datenbanken
Geschrieben
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