![]() |
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. ![]() gruss |
Re: dankschön
Zitat:
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 |
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] |
Re: ADO Stored Procedure
Hallo Steffen!
Zitat:
Viele Grüsse Frank |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:57 Uhr. |
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