<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>SQL Server Synchronisation</title>
    <link>http://forum.geizhals.at/feed.jsp?id=482781</link>
    <description>Geizhals-Forum</description>
    <item>
      <title>Re(15): SQL Server Synchronisation</title>
      <link>http://forum.geizhals.at/t482781,3998518.html#3998518</link>
      <description>&lt;blockquote id="0"&gt;&lt;br&gt;Schönes Beispiel&lt;br&gt;&lt;/blockquote&gt;&lt;br&gt;Das war zwar mal schnell aus den Fingern gesogen - aber ähnliche findest echt oft in der Praxis... Und eben auch in Lehrbüchern, was schon giftig ist...&lt;br&gt;&lt;br&gt;&lt;blockquote id="1"&gt;&lt;br&gt;*pfeif* .... Spass beiseite. Manchmal muss man es machen, weil es anders keinen Sinn ergibt und semantisch einfach nicht korrekt wäre (ich kann nicht einfach null zurückliefern, wenn man eigentlich ein Objekt mit bestimmten Eigenschaften erwartet, genausowenig Sinn macht es ein leeres Objekt zurückzuliefern.)&lt;br&gt;&lt;/blockquote&gt;&lt;br&gt;Klar kann Exception-Werfen Sinn machen... Und ich behaupte ja auch nicht, daß ein Programmierer &lt;b&gt;immer&lt;/b&gt; faul war, wenn er ein throws.. schreibt. Ich behaupte aber doch, daß &lt;b&gt;öfters&lt;/b&gt; mal einer faul war &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":-)"/&gt;.&lt;br&gt;&lt;br&gt;Wobei "Ich kann nicht null zurückliefern"... Was spricht dagegen ?&lt;br&gt;Fast alle C-Funktionen liefern NULL oder -1 im Fehlerfall... Das ist ein "gut eingelebtes" Konzept.... &lt;br&gt;&lt;br&gt;Für den Aufrufer wäre es sogar gleich... &lt;br&gt;Bei Dir (throws...) müßte er schreiben &lt;br&gt;&lt;br&gt;&lt;div class=code&gt;&lt;pre&gt;&#xD;
try { MeinObjekt meinObjekt = MeineObjektFactory.holEins(); meinObjekt.machwas(); } catch (....)&#xD;
&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;Denselben try/catch-Block hättest auch, wenn "holEins()" statt eine Exception zu thrown einfach null zurückliefert... Denn ab "machWas()" fliegt die Exception und Du bist genauso im catch().&lt;br&gt;&lt;br&gt;Wenn aber null zurückgeliefert wird, kannst auch "if (...holEins() != null) {...}" durchführen... &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":-)"/&gt;&lt;br&gt;&lt;br&gt;Exceptions werfen kann aber durchaus dann Sinn machen, wenn es beispielsweise 3 Gründe geben kann, warum eine Funktion nicht so tut wie der Aufrufer wohl wollte - und du ihm das mitteilen willst (zB durch eigene Exceptionklassen). Dann wird's schon gerne mal sehr brauchbar... Und das deckt sich so mit meiner These "Exceptions sind super für Ausnahmesituationen".... Beispielsweise einr "throw new AusserhalbDerDienstzeitNichtErlaubtException();"...&amp;nbsp;&amp;nbsp;- wenn dein "Ich kann nicht einfach NULL zurückliefern" so gemeint war - sind wir nahe beieinander.&lt;br&gt;&lt;br&gt;Andererseits war ich aber auch mal bei einem Projekterl, wo /wirklich viele/ eigene Exceptionklassen definiert wurden... Mit dem logischen Erfolg, daß kein Aufrufer sich je antat, nach der Art der Exception zu unterscheiden und wohl 90% des Handlings a la "try { machWas(); } catch (Exception ex) { SagUser(ex.messageText); }" aussahen &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":-)"/&gt;&lt;br/&gt;</description>
      <pubDate>Wed, 07 Mar 2007 16:24:12 GMT</pubDate>
      <guid>http://forum.geizhals.at/t482781,3998518.html#3998518</guid>
      <dc:creator>googleDork</dc:creator>
      <dc:date>2007-03-07T16:24:12Z</dc:date>
    </item>
    <item>
      <title>Re(9): SQL Server Synchronisation</title>
      <link>http://forum.geizhals.at/t482781,3998375.html#3998375</link>
      <description>Zeichenverkettung würde sicher gehen, aber dann kann der Wert nicht mehr automatisch im Applikation weiterverarbeitet werden, bzw erst nach kompliziertes parsen.&lt;br&gt;&lt;br&gt;&lt;blockquote&gt;&lt;em&gt; Gibt's im SQL-Server kein CREATE VIEW .... ?&lt;br&gt;&lt;/em&gt;&lt;/blockquote&gt;Natürlich, aber ich weiß nicht wie ich dann aus der App mit "Select * From View Where Arg = 1100" arbeiten kann... &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":-)"/&gt;&lt;br/&gt;</description>
      <pubDate>Wed, 07 Mar 2007 15:01:39 GMT</pubDate>
      <guid>http://forum.geizhals.at/t482781,3998375.html#3998375</guid>
      <dc:creator>Ardjan</dc:creator>
      <dc:date>2007-03-07T15:01:39Z</dc:date>
    </item>
    <item>
      <title>Re(15): SQL Server Synchronisation</title>
      <link>http://forum.geizhals.at/t482781,3998349.html#3998349</link>
      <description>Mach dir nichts draus ... kommt von ganz allein.&lt;br/&gt;</description>
      <pubDate>Wed, 07 Mar 2007 14:48:28 GMT</pubDate>
      <guid>http://forum.geizhals.at/t482781,3998349.html#3998349</guid>
      <dc:creator>Somnatic</dc:creator>
      <dc:date>2007-03-07T14:48:28Z</dc:date>
    </item>
    <item>
      <title>Re(14): SQL Server Synchronisation</title>
      <link>http://forum.geizhals.at/t482781,3998347.html#3998347</link>
      <description>Schönes Beispiel &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":)"/&gt;&lt;br&gt;&lt;br&gt;Allerdings muss ich dazu sagen, dass ich gerne konkrete Fehler abfange, nicht generell mal die Mutter aller Exceptions &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":)"/&gt; Damit könnte sich dieses Problem evtl. umschiffen lassen. Wobei die Problematik natürlich bleibt, da hast du schon Recht. Dazu muss ich sagen, dass dies in Java irgendwie besser gelöst ist als in .net.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;blockquote&gt;&lt;em&gt; Noch schlimmer sind oftmals Funktionen, wo es sich der Programmierer einfach&lt;br&gt;machte - und ein throws in der Deklaration angab&lt;br&gt;&lt;/em&gt;&lt;/blockquote&gt;&lt;br&gt;*pfeif* .... Spass beiseite. Manchmal muss man es machen, weil es anders keinen Sinn ergibt und semantisch einfach nicht korrekt wäre (ich kann nicht einfach null zurückliefern, wenn man eigentlich ein Objekt mit bestimmten Eigenschaften erwartet, genausowenig Sinn macht es ein leeres Objekt zurückzuliefern.) Ab und an muss eine Exception weitergegeben werden. Wobei ich dann jedoch dafür plädiere, dass diese Exception genau das Problem umschreibt, sodass das Suchen in der "fremden" Klasse nicht notwendig ist.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;blockquote&gt;&lt;em&gt; Ich will nicht über try/catch herziehen - aber IMHO(!) sollte man mit&lt;br&gt;try/catch sehr sparsam umgehen... Und insbesondere auf throws weitestgehend&lt;br&gt;verzichten...&lt;br&gt;&lt;/em&gt;&lt;/blockquote&gt;&lt;br&gt;Was das anbelangt gehen wir konform &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":)"/&gt;&lt;br&gt;&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Wed, 07 Mar 2007 14:48:00 GMT</pubDate>
      <guid>http://forum.geizhals.at/t482781,3998347.html#3998347</guid>
      <dc:creator>Somnatic</dc:creator>
      <dc:date>2007-03-07T14:48:00Z</dc:date>
    </item>
    <item>
      <title>Re(8): SQL Server Synchronisation</title>
      <link>http://forum.geizhals.at/t482781,3998260.html#3998260</link>
      <description>&lt;blockquote id="1"&gt;&lt;br&gt;Ich habe es mit COALESCE() versucht, und das hat auch prächtig funktioniert. Dann ist aber der Frage gekommen ob ich den Ort und Gemeinde auch zurückgeben kann, und das geht mit COALESCE() nicht. COALESCE(x,y,z) liefert halt der erste Wert zurück der nicht NULL ist, kann also keine zwei Werte zurückgeben...&lt;br&gt;&lt;/blockquote&gt;&lt;br&gt;Nun ja, Du könntest ja so ungefähr&lt;br&gt;&lt;br&gt;&lt;div class=code&gt;&lt;pre&gt;&#xD;
SELECT COALESCE ( ( SELECT Route || "-" || Gemeinde FROM qry_PLZ_Route WHERE plz = 1100 ) , -1 ) AS Route&#xD;
&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;konstruieren - also ein Trennzeichen wie "-" einführen - solange Du nicht weiter joinen mußt...&lt;br&gt;&lt;br&gt;&lt;br&gt;Und Query am Server speichern ?&lt;br&gt;Gibt's im SQL-Server kein CREATE VIEW .... ?&lt;br/&gt;</description>
      <pubDate>Wed, 07 Mar 2007 14:00:41 GMT</pubDate>
      <guid>http://forum.geizhals.at/t482781,3998260.html#3998260</guid>
      <dc:creator>googleDork</dc:creator>
      <dc:date>2007-03-07T14:00:41Z</dc:date>
    </item>
    <item>
      <title>Re(7): SQL Server Synchronisation</title>
      <link>http://forum.geizhals.at/t482781,3998248.html#3998248</link>
      <description>Ich habe es mit COALESCE() versucht, und das hat auch prächtig funktioniert. Dann ist aber der Frage gekommen ob ich den Ort und Gemeinde auch zurückgeben kann, und das geht mit COALESCE() nicht. COALESCE(x,y,z) liefert halt der erste Wert zurück der nicht NULL ist, kann also keine zwei Werte zurückgeben...&lt;br&gt;&lt;br&gt;Jetzt habe ich es mit deine Methode gemacht, und das funktioniert. Jedenfalls im Query-Analyzer. Nur noch schauen wie ich das als Query im Server abspeichern kann, sodas der Applikation nur 'SELECT * FROM qry_PLZ WHERE PLZ = 1100' zu schicken braucht. Ich weiß nicht ob der App auch komplette Queries absetzen kann... &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":-)"/&gt;&lt;br/&gt;</description>
      <pubDate>Wed, 07 Mar 2007 13:54:33 GMT</pubDate>
      <guid>http://forum.geizhals.at/t482781,3998248.html#3998248</guid>
      <dc:creator>Ardjan</dc:creator>
      <dc:date>2007-03-07T13:54:33Z</dc:date>
    </item>
    <item>
      <title>Re(3): SQL Server Synchronisation</title>
      <link>http://forum.geizhals.at/t482781,3998247.html#3998247</link>
      <description>&lt;a href="http://msdn2.microsoft.com/de-de/library/ms146892.aspx" rel="noopener" target="_blank"&gt;http:/&lt;wbr/&gt;/&lt;wbr/&gt;msdn2.microsoft.com/&lt;wbr/&gt;de-de/&lt;wbr/&gt;library/&lt;wbr/&gt;ms146892.aspx&lt;/a&gt; &lt;br&gt;?&lt;br/&gt;</description>
      <pubDate>Wed, 07 Mar 2007 13:54:20 GMT</pubDate>
      <guid>http://forum.geizhals.at/t482781,3998247.html#3998247</guid>
      <dc:creator>googleDork</dc:creator>
      <dc:date>2007-03-07T13:54:20Z</dc:date>
    </item>
    <item>
      <title>Re(15): SQL Server Synchronisation</title>
      <link>http://forum.geizhals.at/t482781,3998206.html#3998206</link>
      <description>Sorry...&lt;br&gt;&lt;br&gt;Vielleicht ein anderes Beispiel:&lt;br&gt;Angenommen, du nimmst guten, alten C-Code (der nun freilich als unakzeptabler legacy-Prozedural-Code bezeichnet wird) - dann hast du oft Konstrukte drin (wieder Pseudocode) wie&lt;br&gt;&lt;br&gt;&lt;div class=code&gt;&lt;pre&gt;&#xD;
Spieler * machwas(char *name, ...) &#xD;
{&#xD;
    buffer *b, *c;&#xD;
    if (!(b = malloc(100)) {        // 100 Bytes f. b anfordern&#xD;
        schreib_fehler("Out of Memory");&#xD;
         return NULL;&#xD;
    }&#xD;
    if (!machWasAnderes(name)) {&#xD;
        free(b);   // Bytes von b wieder freigeben&#xD;
         schreib_fehler("was anderes klappte nicht");&#xD;
         return NULL;&#xD;
    }&#xD;
   ....&#xD;
   return b;           // b zurückgeben.&#xD;
}&#xD;
&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;Vorteil:&lt;br&gt;Genau dort, wo ein Fehler passiert (das sind die "!"-Konstrukte) passiert die Fehlerbehandlung. Dir kann nichts durchrutschen, ....&lt;br&gt;&lt;br&gt;Nachteil:&lt;br&gt;Wenn man auf das "free(b)" vergißt, hast du ein MemoryLeak geschaffen... Was ja öfters mal passierte&lt;br&gt;&lt;br&gt;Lösungsansatz:&lt;br&gt;try { Mach so Einiges - fordere auch Ressourcen an, ... } catch { Reagiere auf Fehler } finally { gib alle Ressourcen wieder frei }&lt;br&gt;&lt;br&gt;Klingt an sich ja absolut sinnvoll - und drum haben try/catch-Blöcke durchaus ihre Berechtigung.&lt;br&gt;&lt;br&gt;Das Problem ist dabei - aus meiner Sicht(!) - daß die Fehlerbehandlung nicht gleich dort stattfindet, wo der Fehler passiert - sondern zeitlich versetzt. Dadurch kann Dir meiner Meinung nach oft auch leichter was durchrutschen als vorher...&lt;br&gt;&lt;br&gt;So war auch mein Spielerbeispiel zu sehen:&lt;br&gt;Da waren 3 Schritte drin:&lt;br&gt;1.) Lege einen Spieler an&lt;br&gt;2.) Ordne ihn einem Team zu&lt;br&gt;3.) Setze seine Punkte auf 0&lt;br&gt;4.) Liefere den Spieler zurück&lt;br&gt;&lt;br&gt;-- Wenn was nicht klappt - liefere Null zurück. (Das Setzen des Spielers auf NULL läßt seine Referenz verschwinden, wenn keine Referenz mehr existiert, wird er (irgendwann) wirklich gelöscht... Daher&amp;nbsp;&amp;nbsp;sieht der Code gut aus. (Java-Beispiel, AFAIK ist es in C# ähnlich.)&lt;br&gt;&lt;br&gt;Wenn Du über so einen Code stolperst, mußt Du Dir /immer/ für jede Zeile des try-Blocks überlegen, ob das paßt.&lt;br&gt;Du beginnst also:&lt;br&gt;Wenn (1) nicht funktioniert - Dann wurde eh kein Spieler angelegt, wir liefern NULL zurück - paßt.&lt;br&gt;Wenn (2) nicht funktioniert - Dann wurde er keinem Team zugeordnet, wir setzen eh im catch() den Pointer auf NULL, dadurch wird die einzige Referenz eliminiert - paßt.&lt;br&gt;Wenn (3) nicht funktioniert... Dann wurde der Spieler aber schon einem Team in (2) zugeordnet - dann hat das Team eine Referenz, die es wohl nicht haben sollte. Dadurch wird der Speicher nicht freigegeben - und das Team hat einen ungültigen Spieler drinnen... Wenn es /irgendwann/ beim Schreiben dein Programm aufstellt, weil Du eine Spielerliste der Teams ausgeben willst... Findest Du dann auf die schnelle den Fehler, der hier passierte ??? Also ich brauche meistens laaange &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":-)"/&gt;&lt;br&gt;&lt;br&gt;Der Fehler war in diesem Beispiel die Reihenfolge...&lt;br&gt;1.) Lege einen Spieler an&lt;br&gt;2.) Setze seine Punkte auf 0&lt;br&gt;3.) Ordne ihn einem Team zu&lt;br&gt;wäre richtig gewesen &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":-)"/&gt;&lt;br&gt;&lt;br&gt;Meiner Meinung nach sind try/catch-Blöcke oftmals weit schwieriger zu debuggen... Weil Du, wenn du gerade im catch()-Block bist Dir Fehler überlegen mußt, die ganz wo anders haben passieren können...&lt;br&gt;&lt;br&gt;Drum setze ich try/catch zwar schon gerne ein - aber eben nur sparsam.&lt;br/&gt;</description>
      <pubDate>Wed, 07 Mar 2007 13:34:46 GMT</pubDate>
      <guid>http://forum.geizhals.at/t482781,3998206.html#3998206</guid>
      <dc:creator>googleDork</dc:creator>
      <dc:date>2007-03-07T13:34:46Z</dc:date>
    </item>
    <item>
      <title>Re(14): SQL Server Synchronisation</title>
      <link>http://forum.geizhals.at/t482781,3998164.html#3998164</link>
      <description>cool...und wieder bin ich beim Status "Ich versteh nur Bahnhof" angekommen &lt;img src="teeth.gif" width="16" height="19" align="absmiddle" alt="|-D"/&gt;&lt;img src="teeth.gif" width="16" height="19" align="absmiddle" alt="|-D"/&gt;&lt;img src="teeth.gif" width="16" height="19" align="absmiddle" alt="|-D"/&gt;&lt;br&gt;(was aber nicht an deinem Beispiel, sondern an meiner absoluten Unwissenheit liegt) &lt;img src="teeth.gif" width="16" height="19" align="absmiddle" alt="|-D"/&gt;&lt;br/&gt;</description>
      <pubDate>Wed, 07 Mar 2007 13:09:18 GMT</pubDate>
      <guid>http://forum.geizhals.at/t482781,3998164.html#3998164</guid>
      <dc:creator>Cereal_Poster</dc:creator>
      <dc:date>2007-03-07T13:09:18Z</dc:date>
    </item>
    <item>
      <title>Re(10): SQL Server Synchronisation</title>
      <link>http://forum.geizhals.at/t482781,3998157.html#3998157</link>
      <description>&lt;blockquote&gt;&amp;nbsp;&amp;nbsp;ahhh...jetzt hab ichs....ist aber wirklich eine sehr umständliche Lösung, oder&lt;/blockquote&gt;&lt;br&gt;Hehe... Genau drum schrieb ich ja "War eh eine dumme Lösung---" &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":-)"/&gt;&lt;br&gt;&lt;br&gt;Wobei ich obiges zu meiner Schande oft in Access verwendete...&lt;br&gt;NVL gab's in Access97 nicht (entspricht COALESCE), und COALESCE... daran dachte ich nicht (k.A., ob's das gab).&lt;br/&gt;</description>
      <pubDate>Wed, 07 Mar 2007 13:04:11 GMT</pubDate>
      <guid>http://forum.geizhals.at/t482781,3998157.html#3998157</guid>
      <dc:creator>googleDork</dc:creator>
      <dc:date>2007-03-07T13:04:11Z</dc:date>
    </item>
    <item>
      <title>Re(13): SQL Server Synchronisation</title>
      <link>http://forum.geizhals.at/t482781,3998154.html#3998154</link>
      <description>Hätte ich ein bißchen anders gesehen....&lt;br&gt;&lt;br&gt;Grundsätzlich teile ich deine Beschreibung des semantischen Unterschieds...&lt;br&gt;&lt;br&gt;Für "normale" Behandlung ist if/then/... super... &lt;br&gt;Für "anormale" Ereignisse eher try/catch...&lt;br&gt;&lt;br&gt;try/catch-Beispiel, das IMHO Sinn macht:&lt;br&gt;try { a=b/c ; b = d/a ; f=a/(b*c) ; h=2*3/f^g } catch (DivisionByZeroException ex) { //Behandle Division durch 0 }&lt;br&gt;&lt;br&gt;Natürlich könnte man das alles auch durch if/then-Lösen... Unter Einsatz von Hilfsvariablen für den Nenner, die jede vorab einzeln auf 0 überprüft werden... Dann wird's aber unnötig lang.&lt;br&gt;&lt;br&gt;Problematisch ist an Exceptions IMHO die Fehlersuche. Beispiel in Pseudocode:&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class=code&gt;&lt;pre&gt;&#xD;
static function neuerSpieler(String name, Team team) returns Spieler&#xD;
{&#xD;
  // legt einen Spieler mit Namen name an und ordnet ihn einem Team zu.&#xD;
  // liefert im Fehlerfalle NULL als Spieler zurück.&#xD;
var spieler = null;&#xD;
try {&#xD;
   Spieler spieler=new Spieler(name);&#xD;
   team.add(spieler);&#xD;
   spieler.setpoints(0);&#xD;
} catch (Exception ex) {&#xD;
  spieler = null;&#xD;
}&#xD;
return spieler&#xD;
}&#xD;
&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;Dieses Beispiel (leider oft ähnliches auch in Lehrbüchern gefunden) zeigt die Probleme bei Exceptionhandling - alles IMHO &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":-)"/&gt;&lt;br&gt;&lt;br&gt;&lt;i&gt;Auf den ersten Blick&lt;/i&gt; sieht's nicht ganz schlimm aus...&lt;br&gt;&lt;br&gt;Fürchterlich wirds aber, wenn spieler.setpoints() eine Exception werfen kann...&lt;br&gt;Denn dann hätten wir einen angelegten Spieler im Team - er würde nur nicht zurückgeliefert. Im besten Falle "nur" ein Memoryleak... Schlimm aber, wenn man später über die Teams iteriert und eine Mitgliederliste baut... Denn dann gibt's eine Referenz auf einen Spieler (wg. team.add() ), die aber zu keinem "gültigen" Spieler führt (zumindest zu einem, bei dem - warum auch immer - setpoints() nicht klappte...&lt;br&gt;&lt;br&gt;Noch schlimmer sind oftmals Funktionen, wo es sich der Programmierer einfach machte - und ein throws in der Deklaration angab.... Wenn du so eine Funktion verwendest, muß man sich gelegentlich für jede einzelne Zeile der Funktion ansehen, wie dein catch() aussehen müßte...&lt;br&gt;&lt;br&gt;Ich will nicht über try/catch herziehen - aber IMHO(!) sollte man mit try/catch sehr sparsam umgehen... Und insbesondere auf throws weitestgehend verzichten...&lt;br&gt;&lt;br&gt;Und es eigentlich nur für Ausnahmefehler verwenden, wobei ein if-then-else oft den Vorteil hat, daß der Fehler genau da behandelt wird, wo er passiert - und dadurch der Code oft (natürlich nicht immer) bei weitem lesbarer wird.&lt;br/&gt;</description>
      <pubDate>Wed, 07 Mar 2007 13:02:09 GMT</pubDate>
      <guid>http://forum.geizhals.at/t482781,3998154.html#3998154</guid>
      <dc:creator>googleDork</dc:creator>
      <dc:date>2007-03-07T13:02:09Z</dc:date>
    </item>
    <item>
      <title>Re(2): SQL Server Synchronisation</title>
      <link>http://forum.geizhals.at/t482781,3998014.html#3998014</link>
      <description>&lt;blockquote&gt;&lt;em&gt; Wegen der Datensicherheit wird es ja nicht sein - denn dann müßten immer beide&lt;br&gt;online sein.&lt;br&gt;Es wird also -vermutlich- darum gehen, daß er seine Datensätze&lt;br&gt;sehen/bearbeiten kann, auch wenn er offline ist...&lt;br&gt;(denn sonst würde man ja nur eine Datenbank am VerkaufsPC fahren).&lt;br&gt;&lt;/em&gt;&lt;/blockquote&gt;&lt;br&gt;stimmt. backup wird warscheinlich noch extra gemacht werden sobald sich das notebook&amp;nbsp;&amp;nbsp;verbindet.&lt;br&gt;&lt;br&gt;&lt;blockquote&gt;&lt;em&gt; Du hattest eine "Masterdatenbank" - und am Lappy (zB als Kundenbetreuer) ein&lt;br&gt;Replikat, daß du ein- und auschecken konntest... Das war beliebt für&lt;br&gt;Außendienstmitarbeiter, die am Lappy ihre Kundendatenbank, ... mitnahmen - und&lt;br&gt;beim einchecken ins Firmenlan ihre Daten auf den Master zurückspielten...&lt;br&gt;&lt;/em&gt;&lt;/blockquote&gt;&lt;br&gt;es soll extern eigentlich keine daten hinzukommen, sondern nur diverse Auswertungen bei bedarf unterwegs gemacht werden. wenn das notebook im lan hängt sollen natürlich neue daten hinzugefügt werden können. deshalb finde ich die idee das sich das notebook zum server verbindet nicht schlecht.&lt;br&gt;&lt;br&gt;Also so:&lt;br&gt;bei nw Verbindung:&lt;br&gt;neue daten werde über das netzwerk direkt auf dem server hinzugefügt. ist das beendet wird eine replikation auf das Notebook gemacht welches dann alle daten bis zum replikationszeitpunkt hat.&lt;br&gt;&lt;br&gt;ohne nw Verbindung:&lt;br&gt;es können keine daten hinzugefügt werden, sondern nur berichte von den vorhandenen Daten erstellt werden.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Wed, 07 Mar 2007 11:48:21 GMT</pubDate>
      <guid>http://forum.geizhals.at/t482781,3998014.html#3998014</guid>
      <dc:creator>MidiFan</dc:creator>
      <dc:date>2007-03-07T11:48:21Z</dc:date>
    </item>
    <item>
      <title>Re(12): SQL Server Synchronisation</title>
      <link>http://forum.geizhals.at/t482781,3997911.html#3997911</link>
      <description>Ein&lt;br&gt;&lt;br&gt;if (var = false) { ... }&lt;br&gt;&lt;br&gt;ist etwas was man unterlassen sollte &lt;img src="zwinker.gif" width="16" height="19" align="absmiddle" alt=";)"/&gt; Was du dir anschauen kannst sind Patterns. Da gehts dann drum, wie bringe ich einen Vorgang in der realen Welt möglichst gut in mein Tool. Ein Beispiel dafür wäre das Observer Pattern. Natürlich gibts da noch einen ganzen Haufen mehr. Auf der anderen Seite stehen dann natürlich die Coding Conventions, aber die sind meist Team - Abhängig.&lt;br&gt;&lt;br&gt;ABER: Ich bin da auch kein Profi. Ich studier das nicht, ich mach das nicht beruflich, mich interessierts nur, aber übermäßig viel Zeit widme ich dem nicht. Daher: Was ich sage muss nicht unbedingt der Realität entsprechen &lt;img src="zwinker.gif" width="16" height="19" align="absmiddle" alt=";)"/&gt;&lt;br/&gt;</description>
      <pubDate>Wed, 07 Mar 2007 10:43:53 GMT</pubDate>
      <guid>http://forum.geizhals.at/t482781,3997911.html#3997911</guid>
      <dc:creator>Somnatic</dc:creator>
      <dc:date>2007-03-07T10:43:53Z</dc:date>
    </item>
    <item>
      <title>Re(9): SQL Server Synchronisation</title>
      <link>http://forum.geizhals.at/t482781,3997902.html#3997902</link>
      <description>ahhh...jetzt hab ichs....ist aber wirklich eine sehr umständliche Lösung, oder? &lt;img src="teeth.gif" width="16" height="19" align="absmiddle" alt="|-D"/&gt;&lt;img src="zwinker.gif" width="16" height="19" align="absmiddle" alt=";-)"/&gt;&lt;br/&gt;</description>
      <pubDate>Wed, 07 Mar 2007 10:35:35 GMT</pubDate>
      <guid>http://forum.geizhals.at/t482781,3997902.html#3997902</guid>
      <dc:creator>Cereal_Poster</dc:creator>
      <dc:date>2007-03-07T10:35:35Z</dc:date>
    </item>
    <item>
      <title>Re(11): SQL Server Synchronisation</title>
      <link>http://forum.geizhals.at/t482781,3997897.html#3997897</link>
      <description>Naja...das ist eben etwas das ich beim Programmieren nicht weiß: Gibt es sowas wie gewisse Sachen die man einfach nicht macht? Oder gibt es quasi einen "Guide zum schönen Programmieren". Gibt es da so Vorgaben, wie man vorgehen soll bei solchen Sachen?&lt;br/&gt;</description>
      <pubDate>Wed, 07 Mar 2007 10:34:00 GMT</pubDate>
      <guid>http://forum.geizhals.at/t482781,3997897.html#3997897</guid>
      <dc:creator>Cereal_Poster</dc:creator>
      <dc:date>2007-03-07T10:34:00Z</dc:date>
    </item>
    <item>
      <title>Re(8): SQL Server Synchronisation</title>
      <link>http://forum.geizhals.at/t482781,3997894.html#3997894</link>
      <description>War eh eine dumme Lösung---&lt;br&gt;Ardjans war weit besser: &lt;a href="http://forum.geizhals.at/t482781,3997692.html#3997692" rel="noopener" target="_blank"&gt;http:/&lt;wbr/&gt;/&lt;wbr/&gt;forum.geizhals.at/&lt;wbr/&gt;t482781,3997692.html#3997692&lt;/a&gt; &lt;br&gt;&lt;br&gt;Meine Lösung hätte wie folgt funktioniert:&lt;br&gt;1.) Datensatzzeile zurückliefern... Also wahlweise 0 oder 1 Row.&lt;br&gt;2.) Unten dann eine "Nicht gefunden"-Zeile dranhängen - Also fix 1 Row.&lt;br&gt;&lt;br&gt;Du hast nachher 1 oder 2 Rows als Antwort... &lt;br&gt;Und durch das TOP1 sagst "Ich will nur die erste Zeile" &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":-)"/&gt;&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Wed, 07 Mar 2007 10:32:50 GMT</pubDate>
      <guid>http://forum.geizhals.at/t482781,3997894.html#3997894</guid>
      <dc:creator>googleDork</dc:creator>
      <dc:date>2007-03-07T10:32:50Z</dc:date>
    </item>
    <item>
      <title>Re(10): SQL Server Synchronisation</title>
      <link>http://forum.geizhals.at/t482781,3997888.html#3997888</link>
      <description>&lt;blockquote&gt;&lt;em&gt; Dann ist der beste Weg sowieso einfach eine Stored Procedure mit einem if&lt;br&gt;drinnen, oder?&lt;br&gt;&lt;/em&gt;&lt;/blockquote&gt;&lt;br&gt;Den besten Weg gibts doch nie. Der eine würds so machen, der andere so. Richtig ist beides &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":)"/&gt; Außerdem würd ich mir nie anmaßen zu sagen: Das ist richtig, das ist falsch. Ich hätts halt anders gemacht, aber solang es halbwegs logisch erscheint - warum nicht &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":)"/&gt; Alle Wege führen nach Rom &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":)"/&gt;&lt;br/&gt;</description>
      <pubDate>Wed, 07 Mar 2007 10:28:27 GMT</pubDate>
      <guid>http://forum.geizhals.at/t482781,3997888.html#3997888</guid>
      <dc:creator>Somnatic</dc:creator>
      <dc:date>2007-03-07T10:28:27Z</dc:date>
    </item>
    <item>
      <title>Re(7): SQL Server Synchronisation</title>
      <link>http://forum.geizhals.at/t482781,3997887.html#3997887</link>
      <description>den kapier ich jetzt aber nicht. Was bringt da ein UNION?&lt;br/&gt;</description>
      <pubDate>Wed, 07 Mar 2007 10:27:51 GMT</pubDate>
      <guid>http://forum.geizhals.at/t482781,3997887.html#3997887</guid>
      <dc:creator>Cereal_Poster</dc:creator>
      <dc:date>2007-03-07T10:27:51Z</dc:date>
    </item>
    <item>
      <title>Re(9): SQL Server Synchronisation</title>
      <link>http://forum.geizhals.at/t482781,3997883.html#3997883</link>
      <description>&lt;blockquote&gt;&lt;em&gt; Semantik &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":)"/&gt;&lt;br&gt;&lt;/em&gt;&lt;/blockquote&gt;&lt;br&gt;Siehst, und davon hab ich eben (noch?) Nüsse Ahnung &lt;img src="zwinker.gif" width="16" height="19" align="absmiddle" alt=";)"/&gt; &lt;img src="teeth.gif" width="16" height="19" align="absmiddle" alt="|-D"/&gt;&lt;br&gt;&lt;br&gt;&lt;blockquote&gt;&lt;em&gt; dann brauchst aber erst Recht wieder ein if&lt;br&gt;&lt;/em&gt;&lt;/blockquote&gt;&lt;br&gt;Dann ist der beste Weg sowieso einfach eine Stored Procedure mit einem if drinnen, oder?&lt;br&gt;Brauchst ja nur was in der Art:&lt;br&gt;IF SELECT IRGENDWAS is NULL &lt;br&gt; PRINT 'Keine Daten gefunden'&lt;br&gt;ELSE &lt;br&gt; ......&lt;br&gt;(das ist jetzt natürlich vollkommen syntaktisch unausgereift).&lt;br&gt;&lt;br&gt;&lt;blockquote&gt;&lt;em&gt; btw: Du gerätst immer mehr in die Materie &lt;br&gt;&lt;/em&gt;&lt;/blockquote&gt;&lt;br&gt;Ja, und das macht mir Angst, weil es mir noch dazu wirklich Spass macht &lt;img src="surprise.gif" width="16" height="19" align="absmiddle" alt="8-O"/&gt;&lt;img src="surprise.gif" width="16" height="19" align="absmiddle" alt="8-O"/&gt;&lt;img src="teeth.gif" width="16" height="19" align="absmiddle" alt="|-D"/&gt;&lt;img src="teeth.gif" width="16" height="19" align="absmiddle" alt="|-D"/&gt;&lt;br/&gt;</description>
      <pubDate>Wed, 07 Mar 2007 10:26:31 GMT</pubDate>
      <guid>http://forum.geizhals.at/t482781,3997883.html#3997883</guid>
      <dc:creator>Cereal_Poster</dc:creator>
      <dc:date>2007-03-07T10:26:31Z</dc:date>
    </item>
    <item>
      <title>Re(11): SQL Server Synchronisation</title>
      <link>http://forum.geizhals.at/t482781,3997873.html#3997873</link>
      <description>Ja, weil sie werden trotzdem vom gleichen Niederlassing aus betreut. Es geht um die Zuordnung PLZ - Niederlassung...&lt;br/&gt;</description>
      <pubDate>Wed, 07 Mar 2007 10:20:23 GMT</pubDate>
      <guid>http://forum.geizhals.at/t482781,3997873.html#3997873</guid>
      <dc:creator>Ardjan</dc:creator>
      <dc:date>2007-03-07T10:20:23Z</dc:date>
    </item>
    <item>
      <title>Re(8): SQL Server Synchronisation</title>
      <link>http://forum.geizhals.at/t482781,3997865.html#3997865</link>
      <description>Semantik &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":)"/&gt;&lt;br&gt;&lt;br&gt;try catch verwende ich zur Fehlerbehandlung. Wenn ich den Status "nicht gefunden" als Fehler interpretieren kann, dann ists angebracht. Wenn ich das jedoch nicht als "Fehler" ansehe, sondern als gewollte Ausgabe, würde ich eher ein if/else verwenden. Ich glaube auch nicht dass eine Exception geworfen wird, sofern das Resultset empty ist. Aber gut, im Notfall könnte man die ja selber generieren, dann brauchst aber erst Recht wieder ein if &lt;img src="zwinker.gif" width="16" height="19" align="absmiddle" alt=";)"/&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;Inwiefern ein Try/Catch in TSQL existiert weiss ich jetzt nicht, wie gesagt: /me ist kompletter DB Noob &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":)"/&gt; Natürlich gibts zur Lösung eines Problems auch andere Möglichkeiten &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":)"/&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;btw: Du gerätst immer mehr in die Materie &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":)"/&gt;&lt;br/&gt;</description>
      <pubDate>Wed, 07 Mar 2007 10:16:29 GMT</pubDate>
      <guid>http://forum.geizhals.at/t482781,3997865.html#3997865</guid>
      <dc:creator>Somnatic</dc:creator>
      <dc:date>2007-03-07T10:16:29Z</dc:date>
    </item>
    <item>
      <title>Re: SQL Server Synchronisation</title>
      <link>http://forum.geizhals.at/t482781,3997853.html#3997853</link>
      <description>Macht da eine Synchronisation Sinn ?&lt;br&gt;&lt;br&gt;Wegen der Datensicherheit wird es ja nicht sein - denn dann müßten immer beide online sein.&lt;br&gt;Es wird also -vermutlich- darum gehen, daß er seine Datensätze sehen/bearbeiten kann, auch wenn er offline ist...&lt;br&gt;(denn sonst würde man ja nur eine Datenbank am VerkaufsPC fahren).&lt;br&gt;&lt;br&gt;Ich kenne das mal nur von Access, aber da gab's doch genau für diesen Fall die Replikation (also nicht Synchronisation), die da hinziehlte...&lt;br&gt;&lt;br&gt;Du hattest eine "Masterdatenbank" - und am Lappy (zB als Kundenbetreuer) ein Replikat, daß du ein- und auschecken konntest... Das war beliebt für Außendienstmitarbeiter, die am Lappy ihre Kundendatenbank, ... mitnahmen - und beim einchecken ins Firmenlan ihre Daten auf den Master zurückspielten...&lt;br&gt;&lt;br&gt;Unter Synchronisation verstehe ich mehr 2-Phase-Commit und ähnliches - was du hier ja wohl nicht brauchst..&lt;br&gt;Oder ist das beim SQL-Server komplett anders ? (Wahrscheinlich).&lt;br&gt;Wenn ja, könnest ja am Lappy ACCESS verwenden - denn das Replikat klappt afaik auch dann fein, wenn der Master ein SQL-Server ist (anders wäre es in Firmen ja sinnlos)...&lt;br&gt;&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Wed, 07 Mar 2007 10:11:36 GMT</pubDate>
      <guid>http://forum.geizhals.at/t482781,3997853.html#3997853</guid>
      <dc:creator>googleDork</dc:creator>
      <dc:date>2007-03-07T10:11:36Z</dc:date>
    </item>
    <item>
      <title>Re(10): SQL Server Synchronisation</title>
      <link>http://forum.geizhals.at/t482781,3997838.html#3997838</link>
      <description>Hmmm... Sicher besser &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":-)"/&gt;&lt;br&gt;&lt;br&gt;Wobei...&lt;br&gt;Ist es in deinem Fall völlig egal, wenn zwei Orte, die einige Kilometer Abstand haben, dieselbe PLZ haben (da gibt's nicht so wenige &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":-)"/&gt; )&lt;br/&gt;</description>
      <pubDate>Wed, 07 Mar 2007 10:05:56 GMT</pubDate>
      <guid>http://forum.geizhals.at/t482781,3997838.html#3997838</guid>
      <dc:creator>googleDork</dc:creator>
      <dc:date>2007-03-07T10:05:56Z</dc:date>
    </item>
    <item>
      <title>Re(7): SQL Server Synchronisation</title>
      <link>http://forum.geizhals.at/t482781,3997836.html#3997836</link>
      <description>Ich habe es schon mi &lt;a href="http://forum.geizhals.at/t482781,3997692.html#3997692" rel="noopener" target="_blank"&gt;http:/&lt;wbr/&gt;/&lt;wbr/&gt;forum.geizhals.at/&lt;wbr/&gt;t482781,3997692.html#3997692&lt;/a&gt;&amp;nbsp;&amp;nbsp;gelöst...&lt;br&gt;&lt;br&gt;Aber vielleicht hätte es in deine Richtung auch geklappt, stimmt.&lt;br/&gt;</description>
      <pubDate>Wed, 07 Mar 2007 10:04:26 GMT</pubDate>
      <guid>http://forum.geizhals.at/t482781,3997836.html#3997836</guid>
      <dc:creator>Ardjan</dc:creator>
      <dc:date>2007-03-07T10:04:26Z</dc:date>
    </item>
    <item>
      <title>Re(6): SQL Server Synchronisation</title>
      <link>http://forum.geizhals.at/t482781,3997828.html#3997828</link>
      <description>Hmmm... Kenne mich leider in SQL nicht aus...&lt;br&gt;&lt;br&gt;Vorschlag a la&lt;br&gt;&lt;br&gt;&lt;div class=code&gt;&lt;pre&gt;&#xD;
SELECT TOP1 NAME FROM (&#xD;
         SELECT name, 1 AS REIHENFOLGE FROM ort where plz = &amp;amp;a&#xD;
         UNION&#xD;
         SELECT "NICHT EXISTENT" FROM dual, 2 AS REIHENFOLGE&#xD;
) as foo&#xD;
ORDER BY REIHENFOLGE&#xD;
&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;klappt nicht?&lt;br/&gt;</description>
      <pubDate>Wed, 07 Mar 2007 10:00:18 GMT</pubDate>
      <guid>http://forum.geizhals.at/t482781,3997828.html#3997828</guid>
      <dc:creator>googleDork</dc:creator>
      <dc:date>2007-03-07T10:00:18Z</dc:date>
    </item>
    <item>
      <title>Re(7): SQL Server Synchronisation</title>
      <link>http://forum.geizhals.at/t482781,3997759.html#3997759</link>
      <description>Das dachte ich mir nämlich auch. Als SQL n00b meine ich, er könnte das doch auch mit einem TRY-CATCH machen in einer Stored Procedure? Also im TRY erstmal ausprobieren ob ein Datensatz da ist. Im Catch dann eine Variable setzen und danach mit einer IF-ELSE je nach Variablenwert das eigentliche Select durchführen (und eben das Ergebnis ausgeben) oder wenn die Variable sagt "gibt es nicht", dann halt ein "Gibt es nicht" ausgeben...&lt;br&gt;Oder denk ich da zu kompliziert? &lt;br&gt;Oder brauch ich beim TRY CATCH das IF-ELSE gar nimmer, weil es im Erfolgsfall sowieso das die Abfrage zurückgibt und im CATCH nur das Fehlerhandling gemacht wird? Dann kann ich mir das IF-ELSE gleich sparen...&lt;br/&gt;</description>
      <pubDate>Wed, 07 Mar 2007 09:37:10 GMT</pubDate>
      <guid>http://forum.geizhals.at/t482781,3997759.html#3997759</guid>
      <dc:creator>Cereal_Poster</dc:creator>
      <dc:date>2007-03-07T09:37:10Z</dc:date>
    </item>
    <item>
      <title>Re(9): SQL Server Synchronisation</title>
      <link>http://forum.geizhals.at/t482781,3997692.html#3997692</link>
      <description>Ich habe der Lösung schon gefunden...&lt;br&gt;&lt;br&gt;&lt;div class=code&gt;&lt;pre&gt;SELECT COALESCE ( ( SELECT Route FROM qry_PLZ_Route WHERE plz = 1100 ) , -1 ) AS Route&lt;/pre&gt;&lt;/div&gt;liefert der richtigen Route wenn der PLZ exisiert, sonst kommt '-1' zurück. COALESCE() ist ähnlich wie CASE, aber in single line zu verwenden. Diese Abfrage kann ich ruhigen Gewissen im Application stellen, ohne das meine 'Geheimnisse' &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":-)"/&gt; öffentlich werden...&lt;br/&gt;</description>
      <pubDate>Wed, 07 Mar 2007 09:08:45 GMT</pubDate>
      <guid>http://forum.geizhals.at/t482781,3997692.html#3997692</guid>
      <dc:creator>Ardjan</dc:creator>
      <dc:date>2007-03-07T09:08:45Z</dc:date>
    </item>
    <item>
      <title>Re(8): SQL Server Synchronisation</title>
      <link>http://forum.geizhals.at/t482781,3997379.html#3997379</link>
      <description>Naja, wenn ich mir zum Beispiel sowas ansehen:&lt;br&gt;&lt;br&gt;&lt;a href="http://www.databasejournal.com/features/mssql/article.php/3087431" rel="noopener" target="_blank"&gt;http:/&lt;wbr/&gt;/&lt;wbr/&gt;www.databasejournal.com/&lt;wbr/&gt;features/&lt;wbr/&gt;mssql/&lt;wbr/&gt;article.php/&lt;wbr/&gt;3087431&lt;/a&gt; &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class=code&gt;&lt;pre&gt;&#xD;
if (select count(*) from Pubs.dbo.Authors&#xD;
	        where au_lname like '[A-D]%') &amp;gt; 0 &#xD;
	   print 'Found A-D Authors'&#xD;
&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;Dann kannst ja ein if select count(*) auf deine DB ausführen. Wenn er was findet, dann gibst das eben aus (evtl. in einer 2ten abfrage). Ansonsten gibst eben was anderes aus. Ich weiss nur leider nicht&lt;br&gt;a) Wie man da die Datasets definiert (aber das liesse sich herausbekommen und dazu müsste man wissen, was genau geliefert werden soll, wenn er nichts findet)&lt;br&gt;b) wie das performet (das müsste man evtl. mal testen).&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Tue, 06 Mar 2007 21:36:45 GMT</pubDate>
      <guid>http://forum.geizhals.at/t482781,3997379.html#3997379</guid>
      <dc:creator>Somnatic</dc:creator>
      <dc:date>2007-03-06T21:36:45Z</dc:date>
    </item>
    <item>
      <title>Re(7): SQL Server Synchronisation</title>
      <link>http://forum.geizhals.at/t482781,3997369.html#3997369</link>
      <description>Auskennen: mit aufsetzen, und standard-Abfragen (SQLs mit ein handvoll Joins, Zeichenverketten usw) kriege ich auch zusammen. Aber dieses Problem ist bisher etwas zu groß für mich. Und niemand hat effektiv helfen können... &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":-)"/&gt;&lt;br/&gt;</description>
      <pubDate>Tue, 06 Mar 2007 21:31:36 GMT</pubDate>
      <guid>http://forum.geizhals.at/t482781,3997369.html#3997369</guid>
      <dc:creator>Ardjan</dc:creator>
      <dc:date>2007-03-06T21:31:36Z</dc:date>
    </item>
    <item>
      <title>Re(6): SQL Server Synchronisation</title>
      <link>http://forum.geizhals.at/t482781,3997336.html#3997336</link>
      <description>Ich kenn mich mit Datenbanken leider viel zu wenig aus ...&lt;br&gt;&lt;br&gt;Aber wennst eh mit TSQL arbeitest, was hindert dich daran in einer Stored Procedure irgendwo ein IF einzubauen. Kann man da dann das Ausgabe - Dataset nicht verändern?&lt;br/&gt;</description>
      <pubDate>Tue, 06 Mar 2007 21:01:02 GMT</pubDate>
      <guid>http://forum.geizhals.at/t482781,3997336.html#3997336</guid>
      <dc:creator>Somnatic</dc:creator>
      <dc:date>2007-03-06T21:01:02Z</dc:date>
    </item>
    <item>
      <title>Re(6): SQL Server Synchronisation</title>
      <link>http://forum.geizhals.at/t482781,3997333.html#3997333</link>
      <description>Genau - wozu einfach - wennst kompliziert auch geht...&lt;br/&gt;</description>
      <pubDate>Tue, 06 Mar 2007 20:54:19 GMT</pubDate>
      <guid>http://forum.geizhals.at/t482781,3997333.html#3997333</guid>
      <dc:creator>Pervasive</dc:creator>
      <dc:date>2007-03-06T20:54:19Z</dc:date>
    </item>
    <item>
      <title>Re(5): SQL Server Synchronisation</title>
      <link>http://forum.geizhals.at/t482781,3997326.html#3997326</link>
      <description>&lt;blockquote&gt;&lt;em&gt; &lt;br&gt;Trotzdem wird das ein Problem geben - und mit der Express Edition sowieso...&lt;br&gt;&lt;/em&gt;&lt;/blockquote&gt;&lt;br&gt;das werd ich rausfinden &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":-)"/&gt;&lt;br/&gt;</description>
      <pubDate>Tue, 06 Mar 2007 20:51:04 GMT</pubDate>
      <guid>http://forum.geizhals.at/t482781,3997326.html#3997326</guid>
      <dc:creator>MidiFan</dc:creator>
      <dc:date>2007-03-06T20:51:04Z</dc:date>
    </item>
    <item>
      <title>Re(8): SQL Server Synchronisation</title>
      <link>http://forum.geizhals.at/t482781,3997318.html#3997318</link>
      <description>Nicht da wo ich jetzt bin...aber ich kann Dir morgen ein paar Snippets pasten...aber das solltest Dir anschauen...das ist IMHO mit das Mächtigste für solche Sachen...&lt;br/&gt;</description>
      <pubDate>Tue, 06 Mar 2007 20:47:52 GMT</pubDate>
      <guid>http://forum.geizhals.at/t482781,3997318.html#3997318</guid>
      <dc:creator>Pervasive</dc:creator>
      <dc:date>2007-03-06T20:47:52Z</dc:date>
    </item>
    <item>
      <title>Re(7): SQL Server Synchronisation</title>
      <link>http://forum.geizhals.at/t482781,3997312.html#3997312</link>
      <description>Hast du etwas (Pseudo)Code? Ich stehe derzeit an, ich gebe es ehrlich zu...&lt;br/&gt;</description>
      <pubDate>Tue, 06 Mar 2007 20:46:12 GMT</pubDate>
      <guid>http://forum.geizhals.at/t482781,3997312.html#3997312</guid>
      <dc:creator>Ardjan</dc:creator>
      <dc:date>2007-03-06T20:46:12Z</dc:date>
    </item>
    <item>
      <title>Re(6): SQL Server Synchronisation</title>
      <link>http://forum.geizhals.at/t482781,3997304.html#3997304</link>
      <description>Ich hab schon gesehen, daß Du das gefragt hast...&lt;br&gt;&lt;br&gt;Kannst nur über eine Inbound-Function lösen...wennst es nicht direkt auswerten kannst...&lt;br/&gt;</description>
      <pubDate>Tue, 06 Mar 2007 20:44:20 GMT</pubDate>
      <guid>http://forum.geizhals.at/t482781,3997304.html#3997304</guid>
      <dc:creator>Pervasive</dc:creator>
      <dc:date>2007-03-06T20:44:20Z</dc:date>
    </item>
    <item>
      <title>Re(5): SQL Server Synchronisation</title>
      <link>http://forum.geizhals.at/t482781,3997288.html#3997288</link>
      <description>&lt;blockquote&gt;&lt;em&gt; MIR brauchst über SQL Server nichts erzählen&lt;br&gt;&lt;/em&gt;&lt;/blockquote&gt;Gut, dann hätte ich eine Frage, die ich selber leider nicht hinkriege:&lt;br&gt;&lt;br&gt;Gegeben eine PLZ-Tabelle, wo etwa 2300 Zeilen (PLZ von ganz Ö) drinnen stehen mit der Gemeinde. Wenn jetzt ein PLZ angegeben wird, soll der richtige Gemeinde zurückkommen. Sowas macht man mit links, ich weiß. Aber wenn eine nicht-existierende PLZ angegeben wird (zB 4711), soll nicht 'nichts' zurückkommen, sondern 'existiert nicht'. Das ganze aber als Query von draussen über ODBC abrufbar...&lt;br&gt;&lt;br&gt;Wennst das schaffst, bist du gut...&lt;br&gt;&lt;br&gt;(oh ja, meine Zwischenlösung das ich auf die schnelle eine PLZ-Tabelle mit 9000 Zeilen (1000-9999) angelegt habe (scripting in Transact-SQL macht spaß), zählt nicht. Was ähnliches muß ich auch für Vertragsnummern machen... &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":-)"/&gt;)&lt;br/&gt;</description>
      <pubDate>Tue, 06 Mar 2007 20:39:03 GMT</pubDate>
      <guid>http://forum.geizhals.at/t482781,3997288.html#3997288</guid>
      <dc:creator>Ardjan</dc:creator>
      <dc:date>2007-03-06T20:39:03Z</dc:date>
    </item>
    <item>
      <title>Re(4): SQL Server Synchronisation</title>
      <link>http://forum.geizhals.at/t482781,3997278.html#3997278</link>
      <description>MIR brauchst über SQL Server nichts erzählen... &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":-)"/&gt;&lt;br&gt;&lt;br&gt;Trotzdem wird das ein Problem geben - und mit der Express Edition sowieso...&lt;br/&gt;</description>
      <pubDate>Tue, 06 Mar 2007 20:33:16 GMT</pubDate>
      <guid>http://forum.geizhals.at/t482781,3997278.html#3997278</guid>
      <dc:creator>Pervasive</dc:creator>
      <dc:date>2007-03-06T20:33:16Z</dc:date>
    </item>
    <item>
      <title>Re(3): SQL Server Synchronisation</title>
      <link>http://forum.geizhals.at/t482781,3997272.html#3997272</link>
      <description>Mit Transactional Replication (&lt;a href="http://msdn2.microsoft.com/en-us/library/aa237164(SQL.80" rel="noopener" target="_blank"&gt;http:/&lt;wbr/&gt;/&lt;wbr/&gt;msdn2.microsoft.com/&lt;wbr/&gt;en-us/&lt;wbr/&gt;library/&lt;wbr/&gt;aa237164(SQL.80&lt;/a&gt; ).aspx) auch kein Problem. Das kann man so einstellen das erst wenn der Transaktion in beide TransaktionLogs geschrieben wurde, committed wird. Dann gibt es kaum latency.&lt;br&gt;&lt;br&gt;Ist in sein Fall nicht notwendig, klar, aber möglich wäre es. Ein Beispiel ist zB der Replikation zwischen Firmen-DB und Web-DB, wobei durch (horizontale und vertikale) Filterung nur bestimmte Daten am Web-DB repliziert werden.&lt;br/&gt;</description>
      <pubDate>Tue, 06 Mar 2007 20:32:16 GMT</pubDate>
      <guid>http://forum.geizhals.at/t482781,3997272.html#3997272</guid>
      <dc:creator>Ardjan</dc:creator>
      <dc:date>2007-03-06T20:32:16Z</dc:date>
    </item>
    <item>
      <title>Re(4): SQL Server Synchronisation</title>
      <link>http://forum.geizhals.at/t482781,3997257.html#3997257</link>
      <description>Wie OFT hab ich das KANN NICHT PASSIEREN schon gehört...&lt;br&gt;&lt;br&gt;Und nein - replizieren ist nur doppelte Arbeit...&lt;br/&gt;</description>
      <pubDate>Tue, 06 Mar 2007 20:27:36 GMT</pubDate>
      <guid>http://forum.geizhals.at/t482781,3997257.html#3997257</guid>
      <dc:creator>Pervasive</dc:creator>
      <dc:date>2007-03-06T20:27:36Z</dc:date>
    </item>
    <item>
      <title>Re(3): SQL Server Synchronisation</title>
      <link>http://forum.geizhals.at/t482781,3997253.html#3997253</link>
      <description>das kann nicht passieren...&lt;br&gt;das&amp;nbsp;&amp;nbsp;ding ist ein 1 Mann (Trafik) betrieb.&lt;br&gt;zwischen dem lager pc und dem verkaufs pc sind 5 m. aber beim verkaufs pc ist leider ein zu kleiner monitor angeschlossen und eine verkaufstastatur so das lagerverwaltung nicht wirklich komfortabel ist.&lt;br/&gt;</description>
      <pubDate>Tue, 06 Mar 2007 20:26:29 GMT</pubDate>
      <guid>http://forum.geizhals.at/t482781,3997253.html#3997253</guid>
      <dc:creator>MidiFan</dc:creator>
      <dc:date>2007-03-06T20:26:29Z</dc:date>
    </item>
    <item>
      <title>Re(2): SQL Server Synchronisation</title>
      <link>http://forum.geizhals.at/t482781,3997232.html#3997232</link>
      <description>Du übersiehst noch was ganz Anderes...&lt;br&gt;&lt;br&gt;Der VERKAUF verkauft vielleicht etwas...was im LAGER schon gar nicht mehr da ist...bzw. umgekehrt...&lt;br/&gt;</description>
      <pubDate>Tue, 06 Mar 2007 20:21:40 GMT</pubDate>
      <guid>http://forum.geizhals.at/t482781,3997232.html#3997232</guid>
      <dc:creator>Pervasive</dc:creator>
      <dc:date>2007-03-06T20:21:40Z</dc:date>
    </item>
    <item>
      <title>Re: SQL Server Synchronisation</title>
      <link>http://forum.geizhals.at/t482781,3997228.html#3997228</link>
      <description>Es geht schon. Man kann den SQL-Server in 7 Stufen miteinander replizieren lassen. Von gleichzeitig im Transaktionslog schreiben und erst Commiten wenn alles geschrieben ist bis zu Replikation per Floppy... Ein Anlaufpunkt findet sich hier: &lt;a href="http://www.microsoft.com/technet/prodtechnol/sql/2000/technologies/replictn.mspx" rel="noopener" target="_blank"&gt;http:/&lt;wbr/&gt;/&lt;wbr/&gt;www.microsoft.com/&lt;wbr/&gt;technet/&lt;wbr/&gt;prodtechnol/&lt;wbr/&gt;sql/&lt;wbr/&gt;2000/&lt;wbr/&gt;technologies/&lt;wbr/&gt;replictn.mspx&lt;/a&gt; &lt;br&gt;&lt;br&gt;Aber wenn die zwei Rechner eh im gleichen Gebäude durch ein schnelles LAN verbunden sind, würde ich mir die Mühe nicht machen... Als Datensicherheit würde ich aber eine externe HD anhängen und ein Wartungsplan anlegen welche die DB regelmäßig sichert.&lt;br/&gt;</description>
      <pubDate>Tue, 06 Mar 2007 20:19:31 GMT</pubDate>
      <guid>http://forum.geizhals.at/t482781,3997228.html#3997228</guid>
      <dc:creator>Ardjan</dc:creator>
      <dc:date>2007-03-06T20:19:31Z</dc:date>
    </item>
    <item>
      <title>Re(3): SQL Server Synchronisation</title>
      <link>http://forum.geizhals.at/t482781,3996931.html#3996931</link>
      <description>Korrekt...&lt;br/&gt;</description>
      <pubDate>Tue, 06 Mar 2007 17:15:19 GMT</pubDate>
      <guid>http://forum.geizhals.at/t482781,3996931.html#3996931</guid>
      <dc:creator>Pervasive</dc:creator>
      <dc:date>2007-03-06T17:15:19Z</dc:date>
    </item>
    <item>
      <title>Re(2): SQL Server Synchronisation</title>
      <link>http://forum.geizhals.at/t482781,3996930.html#3996930</link>
      <description>also nur eine Datenbank.. und wenn das lager verwaltet werden soll vom lager pc auf kassa pc zugreifen.&lt;br/&gt;</description>
      <pubDate>Tue, 06 Mar 2007 17:14:56 GMT</pubDate>
      <guid>http://forum.geizhals.at/t482781,3996930.html#3996930</guid>
      <dc:creator>MidiFan</dc:creator>
      <dc:date>2007-03-06T17:14:56Z</dc:date>
    </item>
    <item>
      <title>Re: SQL Server Synchronisation</title>
      <link>http://forum.geizhals.at/t482781,3996925.html#3996925</link>
      <description>Selbstmord mit Anlauf...&lt;br&gt;&lt;br&gt;Wenn - SQL Server am Verkaufs PC laufen lassen und den Lager PC wenn eingeschalten dort andocken...&lt;br/&gt;</description>
      <pubDate>Tue, 06 Mar 2007 17:13:20 GMT</pubDate>
      <guid>http://forum.geizhals.at/t482781,3996925.html#3996925</guid>
      <dc:creator>Pervasive</dc:creator>
      <dc:date>2007-03-06T17:13:20Z</dc:date>
    </item>
    <item>
      <title>SQL Server Synchronisation</title>
      <link>http://forum.geizhals.at/t482781,3996905.html#3996905</link>
      <description>es geht um 2 Pc's&lt;br&gt;&lt;br&gt;Verkaufs Pc:&lt;br&gt;der Verkaufs pc steht an der Kasse, auf ihm läuft ein SQL Express Server&lt;br&gt;hier wird nur ware verkauft. &lt;br&gt;&lt;br&gt;Lager Pc: &lt;br&gt;der Lager pc wird dazu genutzt um das Lager zu verwalten, Inventur, änderungen an Produkten, Preise etc. auf ihm läuft ebenfalls ein SQL Express Server.&lt;br&gt;&lt;br&gt;die beiden pc's sind per lan verbunden, wobei aber der lager pc nicht immer eingeschalten/anwesend (notebook) sein wird. wie kann ich eine bidirektionale Datenupgleich machen? &lt;img src="frage.gif" width="16" height="26" align="absmiddle" alt="?-)"/&gt;&lt;br/&gt;</description>
      <pubDate>Tue, 06 Mar 2007 16:57:38 GMT</pubDate>
      <guid>http://forum.geizhals.at/t482781,3996905.html#3996905</guid>
      <dc:creator>MidiFan</dc:creator>
      <dc:date>2007-03-06T16:57:38Z</dc:date>
    </item>
    <item>
      <title>SQL Server Synchronisation</title>
      <link>http://forum.geizhals.at/t482781,3996926.html#3996926</link>
      <description>es geht um 2 Pc's&lt;br&gt;&lt;br&gt;Verkaufs Pc:&lt;br&gt;der Verkaufs pc steht an der Kasse, auf ihm läuft ein SQL Express Server&lt;br&gt;hier wird nur ware verkauft. &lt;br&gt;&lt;br&gt;Lager Pc: &lt;br&gt;der Lager pc wird dazu genutzt um das Lager zu verwalten, Inventur, änderungen an Produkten, Preise etc. auf ihm läuft ebenfalls ein SQL Express Server.&lt;br&gt;&lt;br&gt;die beiden pc's sind per lan verbunden, wobei aber der lager pc nicht immer eingeschalten/anwesend (notebook) sein wird. wie kann ich eine bidirektionale Datenabgleich machen? &lt;img src="frage.gif" width="16" height="26" align="absmiddle" alt="?-)"/&gt;&lt;br/&gt;</description>
      <pubDate>Tue, 06 Mar 2007 16:57:38 GMT</pubDate>
      <guid>http://forum.geizhals.at/t482781,3996926.html#3996926</guid>
      <dc:creator>MidiFan</dc:creator>
      <dc:date>2007-03-06T16:57:38Z</dc:date>
    </item>
  </channel>
</rss>
