Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi ADO Stored Procedure (https://www.delphipraxis.net/5328-ado-stored-procedure.html)

toyoman 9. Mär 2004 12:32

Re: ADO Stored Procedure
 
hay!

ich verwende seit neustem die BETTERADODATASET Komponente.
hab diesen Tip im Internet gesehen und muss sagen ist um einiges schneller und auch weniger fehlerhaft.

http://www.delphipraxis.net/internal...ct.php?t=17501

gruss

frankg 9. Mär 2004 12:35

Re: dankschön
 
Zitat:

Zitat von ahachmann
[
Darf ich kurz fragen, was dbGO ist? Sind das die Objekte unter dem Reiter ADO? Die benutze ich nämlich und bin mit der Geschwindigkeit garnicht zufreiden.
Bei 10000 Datensätzen warte ich für das Darstellen der Tabelle bis zu 10 Sekunden.
In der DB selber geht es ratz fatz.

thx
Alexander

Hallo Alexander!

Genau, die dbGO Komponenten sind die in Delphi enthaltenen ADO-Komponenten. Wenn Du mit der Geschwindigkeit nicht zufrieden bist, dann besorg Dir am besten mal das Buch "Delphi und ADO" von Andreas Kosch. Da steht, wie man ADO direkt programmiert und das rockt dann von der Geschwindigkeit her...

Du schreibst, dass die 10000 Datensätze in der Datenbank schnell angezeigt werden. Das kann verschiedene Gründe haben (unter anderem den, dass nicht alle Datensätze geladen werden sondern nur die die angezeigt werden (bzw. etwas mehr) und dass wenn der Anwender durch die Daten scrollt weitere Daten im Hintergrund nachgeladen werden. Aber mit direkter ADO Programmierung geht das trotzdem fixer als mit dbGO.

Viele Grüsse

Frank

Das S 23. Mär 2004 22:07

Re: ADO Stored Procedure
 
Hi,

also diese Frage ist zwar schon ein bißchen her, aber ich will trotzdem ein bißchen mehr schreiben:

Also meine Parameterübergabe an die Stored Procedure formuliere ich immer wie folgt:

datenadressesuchen.SPADRESSESUCHEN.Parameters.Item s[1].Value:=zentralestart.Edit1.Text+'%';

Meine Stored Procedure sieht dabei wie folgt aus:

CREATE PROCEDURE adresse_suchen @parameter nvarchar(100) = null
AS
/*################################################# #########################
# WENN KEINE EINGABE GEMACHT WURDE FOLGENDE FEHLERMELDUNG AUSGEBEN
################################################## ########################*/
IF @parameter = ''
BEGIN
RAISERROR ('Bitte geben Sie den Namen, die Firma oder den Ort ein', 16, 1, 'Hinweis')
END
/*################################################# ########################
# WENN EINGABE GEMACHT WURDE FOLGENDES SQL-STATEMENT AUSFÜHREN
################################################## #######################*/
IF @parameter <> ''
BEGIN
select firma as FIRMENNAME, name as NACHNAME, vorname as VORNAME, plz AS PLZ, ort AS ORT
from contact_kontakt
where name like @parameter or firma like @parameter or ort like @parameter
order by firma,name,ort
END
GO


Ich würde niemals die Parameterübergabe an eine Stored Procedure wie folgt schreiben:

adostoredproc1.parameters.parambyname('parameterna me').value:=blabla

Der Grund ist der, das erstens Rechtsschreibfehler irgendwann nerven und zweitens Du für die Namen die Datenbank nutzen solltest und Dir nicht in der Programmierung einen Kopf über irgendwelche Bezeichnungen machen solltest.

Ich hoffe es funzt jetzt. Eines noch: Diese ADO-Diskussion ob ADO schnell oder nicht schnell sollte man mal relativieren. Wieviel Datensätze werden denn gezogen über den ADO ? Wenn ich in einer Client-Server-Verbindung 1 Mio Datensätze hole, dann ist jede Verbindung lahm. Ich benutze schon seit ewigen Tagen ADO und zu 99% Stored Procedures in der Datenbank und hatte noch nie Probleme damit. Ich bin der Meinung das nicht ADO lahm ist sondern das Grid, in dem die Datensätze angezeigt werden. (Die obige Stored Procedure benötigt für 15000 Datensätze unter 1 s, und das obwohl haufenweise like-Abfragen drin sind)

Okay, bis denne denn

Steffen

[edit=Gérome]Zu lange Zeilen gekürzt. Mfg, Gérome[/edit]

frankg 24. Mär 2004 07:25

Re: ADO Stored Procedure
 
Hallo Steffen!

Zitat:

Zitat von Das S
Ich bin der Meinung das nicht ADO lahm ist sondern das Grid, in dem die Datensätze angezeigt werden. (Die obige Stored Procedure benötigt für 15000 Datensätze unter 1 s, und das obwohl haufenweise like-Abfragen drin sind)

Soweit ich noch weiss hat niemand gesagt, dass ADO lahm ist (ist es nicht!), sondern nur, dass die dbGO Komponenten, die bei Delphi dabei sind Mist sind. Zu Deinem Beispiel mit der 1. Mio Datensätze. Ja klar dauert das was, egal welche Technologie man einsetzt, aber wichtig ist doch ob es ne halbe Stunde dauert oder vielleicht nur 5 Minuten.

Viele Grüsse

Frank


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:57 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz