AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi DBGrid und MS SQL-Server
Thema durchsuchen
Ansicht
Themen-Optionen

DBGrid und MS SQL-Server

Ein Thema von MadMason · begonnen am 5. Jan 2003 · letzter Beitrag vom 26. Mai 2003
Antwort Antwort
MadMason

Registriert seit: 9. Nov 2002
Ort: Altenburg
126 Beiträge
 
Delphi 2005 Architect
 
#1

DBGrid und MS SQL-Server

  Alt 5. Jan 2003, 11:01
Ich habe einen Table in einer MS-SQL Server Datenbank.
Wenn ich eine DBGrid nehme dem ein DataSource zuweise und dan dem DataSource einem SQLDataSet und dem meine SQLConnection (die funktioniert, da ich sie schon mit sqlquery erfolgreich benutzt habe)
und dann alles auf Enable stelle
kommt die meldung

operation not allowed on a unidirectional dataset

muss ich irgendetwas einstellen damit es geht oder ist es unmöglich?
Einstein ist tot
Newton ist tot
und mir ist auch schon ganz schlecht
  Mit Zitat antworten Zitat
MadMason

Registriert seit: 9. Nov 2002
Ort: Altenburg
126 Beiträge
 
Delphi 2005 Architect
 
#2
  Alt 6. Jan 2003, 15:41
gibt es eine andere Möglichkeit den kompletten Inhalt eines SQL-Tables anzuzeigen?
Einstein ist tot
Newton ist tot
und mir ist auch schon ganz schlecht
  Mit Zitat antworten Zitat
xbu58

Registriert seit: 10. Dez 2002
Ort: Bäretswil / Schweiz
121 Beiträge
 
Delphi 7 Enterprise
 
#3
  Alt 6. Jan 2003, 20:21
Hallo MadMason

Ich setze dafür immer TADOQuery ein und nicht SQLDataSet. Auf Server-Datenbanken sollte man aus Performance-Gründen nicht mit einem TTable TSQLDataSet zugreifen, da dadurch eine unnötige Belastung für den Server entsteht. Grundsätzlich gilt, dass man auf DB-Servern mit möglichst klar definierten Abfragen arbeiten sollte. Du musst Dir immer im Klaren sein, dass die Daten nicht nur vom Server aufbereitet werden, sonder auch übertragen werden müssen. Test die ich in diesem Zusammenhang gemacht habe, haben mir Geschwindigkeitsvorteile bis zu Faktor 10 gebracht! Das ist natürlich bei Tabellen mit nur wenigen Rows nicht unbedingt relevant, aber aus Einfachheit (oder Faulheit ) setzte ich deshalb immer TADOQuery ein.

Gruss
Xaver
  Mit Zitat antworten Zitat
Benutzerbild von harrybo
harrybo

Registriert seit: 26. Nov 2002
Ort: Aachen
87 Beiträge
 
Delphi 6 Enterprise
 
#4
  Alt 7. Jan 2003, 10:56
Die Datenbankdatei könnte schreibgeschützt sein (z.B. wenn sie von CD kopiert wurde)

gruß, harrybo
Harry Boldt
  Mit Zitat antworten Zitat
xbu58

Registriert seit: 10. Dez 2002
Ort: Bäretswil / Schweiz
121 Beiträge
 
Delphi 7 Enterprise
 
#5
  Alt 7. Jan 2003, 20:00
Hallo Harrybo

Das ist eher unwahrscheinlich, da im SQL-Server eine Tabelle nicht ein einzelnes File ablegt, sondern alle Tabelle in einem sogenannten Dataspace abgelegt, welche im Minimum aus zwei Files besteht (DataFile und LogFile), die im File-System gespeichert ist. Ausserdem schreibt MadMason, dass er mit SQLQuery schon erfolgreich war. Also ist die Tabelle offensichtlich in Ordnung.

Hier noch ein Hinweis: Um mit ADO einen Update durchführen zu können (sprich .Edit und .Post) müssen nach meiner Erfahrung zwei Sachen eingestellt sein:
1. ADO arbeitete mit zwei CursorLocation-Typen (Server oder Client). Dieser Type legt fest, wo der Cursor verwaltet wird. Im Normalfall muss hier clUseClient verwendet werden.
2. ADO arbeitete mit verschiedenen CursorType. Am besten arbeitet man hier mit ctKeyset. Dieser Type verwendet für das Bilden des Update-Wheres den PrimaryKey der Tabelle oder einen entsprechenden Unique-Index. ctKeyset kann nicht eingesetzt werden, wenn nicht eines der beiden Kriterien erfüllt ist. Das heisst, die Tabelle muss einen PrimaryKey oder in Unique-Index haben!

Gruss
Xaver
  Mit Zitat antworten Zitat
MadMason

Registriert seit: 9. Nov 2002
Ort: Altenburg
126 Beiträge
 
Delphi 2005 Architect
 
#6
  Alt 7. Jan 2003, 20:03
hab die Lösung gefunden:

TSQLDataSet ist unidirektional
TSQLClientDataSet ist bidirektional --> damit funzts
Einstein ist tot
Newton ist tot
und mir ist auch schon ganz schlecht
  Mit Zitat antworten Zitat
Benutzerbild von harrybo
harrybo

Registriert seit: 26. Nov 2002
Ort: Aachen
87 Beiträge
 
Delphi 6 Enterprise
 
#7
  Alt 7. Jan 2003, 22:57
Hallo xbu58, MadMason,
es war auch nur eine Vermutung. Demnächst kann ich vielleicht etwas konkreter helfen.

bis dahin, gruß, harrybo
Harry Boldt
  Mit Zitat antworten Zitat
xbu58

Registriert seit: 10. Dez 2002
Ort: Bäretswil / Schweiz
121 Beiträge
 
Delphi 7 Enterprise
 
#8
  Alt 8. Jan 2003, 06:43
Hallo harrybo

Kein Problem. Das Forum ist gerade deshalb eine gute Sache, weil man einfach mal seine Meinungen und Vermutungen aussern kann. Also musst Du dich nicht fast entschuldigen, wenn Du einen Beitrag leistst, ausser es ist ironisch gemeint

Gruss
Xaver
  Mit Zitat antworten Zitat
DSammy

Registriert seit: 25. Mai 2003
2 Beiträge
 
#9
  Alt 25. Mai 2003, 23:27
Zitat von MadMason:
hab die Lösung gefunden:

TSQLDataSet ist unidirektional
TSQLClientDataSet ist bidirektional --> damit funzts
Hallo MadMason...

ich bin neu hier, aber ich glaube du kannst mir Helfen ?!

Ich versuche auf einen MSSQL-Server zu Connecten. Bislang bekam ich aber immer die Fehlermeldung "Anmeldung falsch" ? Ich benutze das Zoes-Packet und fange gerade erst mit MSSQL an ! Mit dem Enterprise-Manager bekomme ich den Connect hin ???
Weißt du rat, denn leider sind hier nicht so viele Leute die auf SQL-Server stehen

Danke DSammy
  Mit Zitat antworten Zitat
MadMason

Registriert seit: 9. Nov 2002
Ort: Altenburg
126 Beiträge
 
Delphi 2005 Architect
 
#10
  Alt 26. Mai 2003, 16:59
Welche autorisierungsmethode hast du bei der Installation und beim erstellen der Datenbank angegeben?
Ich nutze immer Windows-Authentifikation, damit hab ich keine Probleme.

Das kann man im Enterprise Manager in den Eigenschaften der Datenbank einstellen. Probiers mal aus, vielleicht liegts daran.
Einstein ist tot
Newton ist tot
und mir ist auch schon ganz schlecht
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:28 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