Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi bigint Variable beim MSSQL Server wird bei TTable zu Float (https://www.delphipraxis.net/65459-bigint-variable-beim-mssql-server-wird-bei-ttable-zu-float.html)

mikesch40 16. Mär 2006 19:00

Datenbank: MSSQL • Version: 2000 • Zugriff über: BDE TTable

bigint Variable beim MSSQL Server wird bei TTable zu Float
 
Ich habe da mal eine Frage:

Nutze Delphi 7 Enterprise mit 7.1 Update

Wenn ich eine MSSQL Table mit einer Variable vom Typ bigint habe (8 Byte Integer) und gebe dann bei Delphi den Befehl alle Felder einfügen
wird das Feld entweder in diversen Varianten erstellt oder als FloatFeld verstanden.

Eigentlich hätte ich LargeInt (int64) erwartet.

Ist das Problem bekannt ? und wenn ja gibt es eine Patch, Workaround oder noch besser eine direkte Lösung ?

mkinzler 16. Mär 2006 19:11

Re: bigint Variable beim MSSQL Server wird bei TTable zu Fl
 
Ich glaube kaum, daß Hoffnung besteht das ein Patch für die BDE für neuere datenbanken erscheint. Verwende am Besten andere Komponenten füür den Zugriff auf MSSql.

Bernhard Geyer 16. Mär 2006 21:24

Re: bigint Variable beim MSSQL Server wird bei TTable zu Fl
 
Zitat:

Zitat von mikesch40
Ist das Problem bekannt ? und wenn ja gibt es eine Patch, Workaround oder noch besser eine direkte Lösung ?

Bessere Lösung: BDE wegschmeißen und auf ADO(Express) umsteigen. Evtl. wäre SDAC noch besser.

mikesch40 18. Mär 2006 17:54

Re: bigint Variable beim MSSQL Server wird bei TTable zu Fl
 
Danke für die prompte Hilfe!
Habe SDAC gekauft. Mit dem Migrationstool dort ist auch die Umstellung grosser Projekte von BDE auf SDAC in wenigen Stunden zu machen.

Bernhard Geyer 18. Mär 2006 22:20

Re: bigint Variable beim MSSQL Server wird bei TTable zu Fl
 
Zitat:

Zitat von mikesch40
Danke für die prompte Hilfe!
Habe SDAC gekauft. Mit dem Migrationstool dort ist auch die Umstellung grosser Projekte von BDE auf SDAC in wenigen Stunden zu machen.

Wow. Endlich mal einer der nicht lange Jammert wegen des Umstellungsaufwandes und dem Argument das ja das Programm eigentlich nicht mehr verändert und man nur 'ne Kleinigkeit haben will und bisher BDE ja auch ging.

mikesch40 21. Mär 2006 21:14

Re: bigint Variable beim MSSQL Server wird bei TTable zu Fl
 
Nun eine Haken hat die Sache mit SDAC noch.

Ein Tabelle in der Datenbank die vorher mit TTable bearbeitet wurde hat so 250.000 Einträge.

Vorher via BDE wurde die Tabelle mit

T.Open
T.Last

geöffnet und auf den letzten Satz gestellt. Die Table stand dann auf "Update_Where_KeyOnly".
Das dauerte mit BDE so ca: 3 Sekunden. Der Sprung von Satz zu Satz dauerte ca: 0,5 Sekunden.
Der Sprung von Ende an den Anfang und umgekehrt ebenfalls so 1 Sekunde.

Mit SDAC dauert das Öffnen mit T.Last so 40-50 Sekunden.
Der Sprung auf Anfang oder Ende dauert jetzt ca. 1 Minute

Das "Finden" eines Satzes mit Locate dauert 3-5 Sekunden vorher mit der BDE
und FindKey war es nur eine halbe Sekunde.

Für dieses Problem habe ich bis jetzt keine Lösung gefunden.

mikesch40 23. Mär 2006 07:38

Re: bigint Variable beim MSSQL Server wird bei TTable zu Fl
 
Werde wohl für dieses Projekt auf BDE bleiben müssen, da alle Versuche mit dbExpress, ADO und SDAC das Problem mit dem langen Laden bei der Tabelle mit dem 250.000 Einträgen haben.

Weis zufällig jemand wie die BDE die Befehle TTable.Open und TTable.First und TTable.Last in SQL Anweisungen für den MS SQL Server umsetzt.

Problematisch ist offenbar das sowohl SDAC, ADO als auch dbExpress die Primärindex dieser Tabelle nicht nutzen können oder wollen.
Der Zugriff via BDE orientiert sich anscheinend am dem Primärschlüssel, so das die Befehle open und Last innerhalb von nur 0,5 Sekunden erledigt sind und kein grosser Datentransfer vom Server aus stattfindet.

Selbst die Umstellung der SDAC Table auf Cursorkeys des Servers bringt hier keine Verbesserung das Laden geht zwar dann schnell aber die Befehle Next und Prev zum Navigieren oder das Laden eines bestimmen Satzes über den Primärschlüssel dauern dann jedesmal so 20-30 Sekunden.

Bernhard Geyer 23. Mär 2006 08:08

Re: bigint Variable beim MSSQL Server wird bei TTable zu Fl
 
Wo sollen wir denn nun Posten. Bitte deine Probleme nicht in 2 verschiedenen Posts beschreiben. Und einen bestehenden Thread nicht für neue Probleme verwenden sondern (wie schon gemacht) einen neuen Thread aufmachen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:29 Uhr.

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