Parameter ind SQL-Abfragen

Maximus

Erfahrenes Mitglied
Hallo,

ich habe mal 2 generelle Fragen zu den Parametern bei SQL-Abfrage:

Zum einen sieht man in Foren oft die folgende Schreibweise:
Code:
SELECT * FROM Kunden WHERE (Datum < @Datum)
.

Eine andere beliegte Art ist die folgende:
Code:
UPDATE Kunden SET Firma = ? WHERE Datum = ?

Wo liegt der Unterschied zwischen derm @Datum und dem ? aus Codeteil 2?
Sind nicht beides Platzhalter für die Parameterobjekte? Können beide schreibweisen beliebig genutzt werden?

Und was bedeutet beim Parameter-Objekt die Eigenschaft Direction genau?

Kennt jemand eine wirklich gute Erklärung zum Thema Parameter-Objekte?
Werde da leider nicht so richtig schlau raus.

Besten Dank für Eure Hilfe.

Gruss

Maximus
 

mage

Erfahrenes Mitglied
Der Unterschied liegt in der SQL Syntax der Datenbank Provider.
Bei Verwendung des SqlCommand (Namensraum SQLClient) für die MS SQL Server und MSDE wird das @ Zeichen als Kennzeichnung für den Parameter verwendet.
Beim OleDbCommand (Namesraum OleDb) wird das ? als Kennzeichnung für einen Parameter verwendet.

Wie man sieht wurde hier leider keine einheitliche Lösung von der MS(?) Seite verfolgt.
Leider funktionieren die Seiten nur mit dem jeweiligen Providermodell.
 

MMMEC

Grünschnabel
Hi

soweit ich weiß sind die Parameter abhängig vom DBMS.
Und deswegen kommt es zu unterschiedlichen Platzhaltern und eigenschaften.
Da ein DBMS mehr untersützt als ein anderes

DBMS = DatenbankManagementSystem z.B. MySQL,Oracle.....

mfg
Markus
 

Maximus

Erfahrenes Mitglied
Vielen Dank für die beiden schnellen Antworten.
Hat auch noch jemand auf die beiden noch offenen Fragen, eine Antwort parat?

Gruß

Maximus!