UUId als Key in Dbase-Tabellen unter Clipper [Erledigt]

Zugriff, Engines, Konvertierung. Von ADS über DBF bis zu SQL.

Moderator: Moderatoren

Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: UUId als Key in Dbase-Tabellen unter Clipper [Erledigt]

Beitrag von Manfred »

wieso muß er da liegen? Da steht nachher nur die ID drin. Und die ist einwandfrei schonmal erzeugt worden einige Sätze vorher. ich bin genauso verwirrt wie ... keine Ahnung wer noch verwirrt ist. :shock:
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: UUId als Key in Dbase-Tabellen unter Clipper [Erledigt]

Beitrag von Martin Altmann »

Mach mal deine Zuweisungen nicht in der LOCAL-Definition. Zumindest ich würde an der Stelle mal drehen.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: UUId als Key in Dbase-Tabellen unter Clipper [Erledigt]

Beitrag von ramses »

Versuche mal das "TEXT INTO" durch eine normale Variablenzuweisung zu ersetzen und darauf zu Verzichten. Es gibt einige Zeichenfolgen die passen da nicht rein.
Valar Morghulis

Gruss Carlo
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: UUId als Key in Dbase-Tabellen unter Clipper [Erledigt]

Beitrag von Manfred »

den mußt Du mir jetzt mal erklären, wie der gemeint ist.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: UUId als Key in Dbase-Tabellen unter Clipper [Erledigt]

Beitrag von ramses »

Code: Alles auswählen

  cSqlStmt := "INSERT INTO {#tabelle#} (id, {#cFelder#}) VALUES ('{#cid#}' , {#cValues#})"
Valar Morghulis

Gruss Carlo
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: UUId als Key in Dbase-Tabellen unter Clipper [Erledigt]

Beitrag von Manfred »

und das erklärt jetzt was Du meinst?
Interessant.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Re: UUId als Key in Dbase-Tabellen unter Clipper [Erledigt]

Beitrag von Werner_Bayern »

Servus Manfred,

ich wette, Dein SQL-Feld ist zu klein 8)
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: UUId als Key in Dbase-Tabellen unter Clipper [Erledigt]

Beitrag von Manfred »

ich verstehe immer weniger was die Vorschläge mit dem Problem der doppelten Erzeugung zu tun haben? Das Feld hat eine Breite von 36 Zeichen und solche Felder nutze ich schon seit einigen Jahren.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
nightcrawler
1000 working lines a day
1000 working lines a day
Beiträge: 650
Registriert: Di, 24. Apr 2012 16:33
Wohnort: 72184 Weitingen
Hat sich bedankt: 3 Mal
Danksagung erhalten: 96 Mal
Kontaktdaten:

Re: UUId als Key in Dbase-Tabellen unter Clipper [Erledigt]

Beitrag von nightcrawler »

Du nutzt dch ADS...da gibt es NewID().

Code: Alles auswählen

INSERT INTO MYTABLE(ID, Text) SELECT newID(), anytext FROM OtherTable;
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Re: UUId als Key in Dbase-Tabellen unter Clipper [Erledigt]

Beitrag von Werner_Bayern »

Läuft einwandfrei durch:

Code: Alles auswählen

#include "Common.ch"
#include "pgdbe.ch"


PROCEDURE Main
LOCAL cConnect, oSession, nStart, i

cConnect := "DBE=pgdbe;SERVER=localhost;DB=test;UID=postgres;PWD=xxx"
oSession := DacSession():New( cConnect )

// Check for connection success
IF .NOT. oSession:isConnected()
 ? oSession:GetLastMessage()
 Alert( "Unable to establish connection to server", {"Quit"} )
 QUIT
ENDIF


if .not. oSession:executeStatement("create table if not exists public.manfred (uuid character(36))")  // xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
   ? oSession:GetLastMessage()
   wait
   quit
endif

if .not. oSession:executeStatement("create unique index if not exists manfred_uuid on public.manfred (uuid)")
   ? oSession:GetLastMessage()
   wait
   quit
endif

nStart := seconds()
for i := 1 to 300000
   if .not. oSession:executeStatement("insert into manfred (uuid) VALUES ('" + UuidToChar(UuidCreate()) + "')")
      ? oSession:GetLastMessage()
      wait
      quit
   endif
next i

? "Dauer:", seconds() - nStart

oSession:disconnect()
wait
return

procedure dbesys
  // Load the PostgreSQL DatabaseEngine
  IF(!DbeLoad("pgdbe"))
    Alert( "Unable to load the PostgreSQL DatabaseEngine", {"Quit"} )
    QUIT
  ENDIF
  return
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: UUId als Key in Dbase-Tabellen unter Clipper [Erledigt]

Beitrag von Manfred »

@Joachim,
nachdem ich in Deinem Buch die Stelle dazu fand, nutze ich das jetzt auch. Ich hatte nur anfänglich einfach nicht hinbekommen, das der ADS das jedesmal automatisch macht. Dann kam ich auf den DEFAULT Wert baute die Funktion da ein und siehe da, jetzt habe ich das was ich immer wollte.

@Werner,
ich glaube es Dir, bisher gab es auch nie Probleme damit. Nur bei mir ist es nun mal so gewesen. Was soll ich sagen? Ich hatte es nur nie in einer Schleife gemacht, so wie jetzt.
Ist aber jetzt auch Wurscht. Ich mache das mit der Funktion im ADS.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Antworten