SQL und Access 2000

Hallöchen,

ich habe ein paar Fragen betreffend SQL-Anweisungen (aus EXE-Programmer, die mittels ADO/OLE DB über die Jet Engine) an Access 2000 gehen:

  1. Joins
    Vor einiger Zeit hab ich mal per Zufall in einem Artikel gesehen, der nicht an mich gerichtet war, dass Joins für Access ein bisschen optimiert werden können, bzw. etwas simples in der untenstehenden Art sei nicht das schnellste:

SELECT Tabelle1.Feld1, Tabelle2.Feld2
FROM Tabelle1, Tabelle2
WHERE (Tabelle1.Feld1 = Tabelle2.Feld1)

  1. BLOBs
    Ich denke mal, Access 2000 unterstützt BLOBs.

2a) Gilt das auch für „custom“ (untypisierte) BLOBs, also einfach einen ByteStream mit dynamischer Länge ?

2b) Wie wird übers SQL mit BLOBs gearbeitet. Bei UPDATE-Statements kann ich ja wohl kaum irgendwelche Werte für das Feld direkt übergeben. Bei SELECT kann ich mir das schon eher vorstellen, wohl irgendwie über Variants.

PS: Das EXE-Programm ist in Borland Delphi 6 gemacht.

Gruss, Roger

Hallöchen,

ich habe ein paar Fragen betreffend SQL-Anweisungen (aus
EXE-Programmer, die mittels ADO/OLE DB über die Jet Engine) an
Access 2000 gehen:

  1. Joins
    Vor einiger Zeit hab ich mal per Zufall in einem Artikel
    gesehen, der nicht an mich gerichtet war, dass Joins für
    Access ein bisschen optimiert werden können, bzw. etwas
    simples in der untenstehenden Art sei nicht das schnellste:

SELECT Tabelle1.Feld1, Tabelle2.Feld2
FROM Tabelle1, Tabelle2
WHERE (Tabelle1.Feld1 = Tabelle2.Feld1)

In der Tat, derartige „Old Style Joins“ existieren eigentlich nur noch aus historischen Gründen, man sollte sie ganz allgemein vermeiden (sie sind auch nicht aktualisierbar!).

  1. BLOBs
    Ich denke mal, Access 2000 unterstützt BLOBs.

A2.0, A95, A97 auch… (Das heisst dort OLE-Objekt).

2a) Gilt das auch für „custom“ (untypisierte) BLOBs, also
einfach einen ByteStream mit dynamischer Länge ?

2b) Wie wird übers SQL mit BLOBs gearbeitet. Bei
UPDATE-Statements kann ich ja wohl kaum irgendwelche Werte für
das Feld direkt übergeben. Bei SELECT kann ich mir das schon
eher vorstellen, wohl irgendwie über Variants.

Ich kenne nur die Verwendung per Datenzugriffsmodell (DAO/ADO) - z.B. AppendChunk- bzw. GetChunk-Methode.

Gruss aus dem Norden
Reinhard Kraasch

SELECT Tabelle1.Feld1, Tabelle2.Feld2
FROM Tabelle1, Tabelle2
WHERE (Tabelle1.Feld1 = Tabelle2.Feld1)

In der Tat, derartige „Old Style Joins“ existieren eigentlich
nur noch aus historischen Gründen, man sollte sie ganz
allgemein vermeiden (sie sind auch nicht aktualisierbar!).

Und kannst du mir auch sagen, wie man einen JOIN speziell für Access 2000 besser machen kann ?

Roger

Und kannst du mir auch sagen, wie man einen JOIN speziell für
Access 2000 besser machen kann ?

Na, indem man halt JOIN reinschreibt, wo JOIN draufsteht ;=)

SELECT Tabelle1.*, Tabelle2.*
FROM Tabelle1 INNER JOIN Tabelle2 ON Tabelle1.ID = Tabelle2.ID;

… oder ähnlich

Letztendlich genau das, was z.B. der Abfrageeditor vorschlägt, der „Old Style Join“ ist doch eher ein Um- bzw. Abweg…

Gruß aus dem Norden
Reinhard Kraasch