AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken SQLite Aliases funktionieren nicht
Thema durchsuchen
Ansicht
Themen-Optionen

SQLite Aliases funktionieren nicht

Ein Thema von badspirit · begonnen am 31. Mai 2013 · letzter Beitrag vom 31. Mai 2013
Antwort Antwort
badspirit

Registriert seit: 26. Mär 2010
3 Beiträge
 
#1

SQLite Aliases funktionieren nicht

  Alt 31. Mai 2013, 08:04
Datenbank: SQLite • Version: 3.7.15.2 • Zugriff über: dbExpress
Hallo,
ich versuche seid einer halben Stunde verzweifelt, die Anzahl meiner Datensätze aus meiner Tabelle auszulesen. Ich benutze dbExpress für die Verbindung zu meiner SQLite Datenbank. Abragen funktionieren alle soweit, nur tauchen immer wieder Probleme bei Kleinigkeiten auf die ich mir nicht erklären kann. Deshalb möchte ich wissen ob Ihr damit auch schon Probleme gehabt habt.

Mein erster Gedenke war ein Query abzusetzen ('SELECT id FROM tabelle WHERE name LIKE :name') und anschließend mit
query.recordcount die Anzahl abzufragen. Dies funktioniert leider nicht, hier gibt es eine Exception "Operation wird nicht unterstützt"

Nachtrag: Ich habe grade mitbekommen, dass query.recordcount nur abgefragt werden kann wenn auch wirklich etwas gefunden wurde. (Problem hat sich also erledigt)

Meine zweite Idee dazu war: 'SELECT Count(id) AS Anzahl FROM tabelle WHERE name LIKE :name'.
Aber auch hier habe ich ein Problem und zwar kann ich nicht auf query.fielfbyname('Anzahl')zugreifen. Anscheinend wird der Alias nicht gesetzt, denn im Query ist nur ein Feld Namens "Column0" vorhanden. Ist das ganze ein Bug oder kann ich das irgendwie anders lösen?
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#2

AW: SQLite Aliases funktionieren nicht

  Alt 31. Mai 2013, 08:43
Als Workaround könnte Query.Fields[0] statt fieldbyname klappen.
Auf SQL Seite mal ohne "as" probieren.
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: SQLite Aliases funktionieren nicht

  Alt 31. Mai 2013, 08:59
Da ein "Select count(*) ..." eh nur einen Datensatz mit einem Feld liefert reicht es hier mit "Fields[0]" zu arbeiten.

Und wenn die Alias nicht klappt könnte das sicherhlich an dbExpress liegen.
Nachdem Emba mit FireDac hier eh einen besseren Nachfolger am Start hat würde ich hier auch keine Fehlerkorrekturen mehr erwarten.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
badspirit

Registriert seit: 26. Mär 2010
3 Beiträge
 
#4

AW: SQLite Aliases funktionieren nicht

  Alt 31. Mai 2013, 09:05
also so:
'SELECT Count(id) Anzahl FROM tabelle WHERE name LIKE :name'?

Da hab ich das selbe Problem.
Ich habe es jetzt halt mit query.FieldByName('Column0') gelöst. Wäre trotzdem interessant zu wissen wieso der Alias für das Feld nicht übernommen wird. Klappt ja nicht mal bei ganz normalen abfragen ('SELECT id AS id_test FROM tabelle').

Wenn ich die Abrage über SQLite Admin sende, bekomme ich übrigens die Datensätze mit dem entsprechenden Alias zurück;

Gehe da auch von nem Bug aus!
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: SQLite Aliases funktionieren nicht

  Alt 31. Mai 2013, 09:15
Ich habe es jetzt halt mit query.FieldByName('Column0') gelöst. Wäre trotzdem interessant zu wissen wieso der Alias für das Feld nicht übernommen wird.
Kuckst du hier: http://blogs.embarcadero.com/sblas/2...e3-and-sqlite/

Abschnitt nach "ColumnMetaDataSupported causes the driver code to miss the fullname (alias) of the field because"
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#6

AW: SQLite Aliases funktionieren nicht

  Alt 31. Mai 2013, 09:16
In Deiner Variante bekommst Du aber dann ein Problem, wenn es ein Bug ist und Du oder andere Anwender mit neueren Treibern arbeiten.
Versuch lieber die FieldIndex Variante, die ich vorgeschlagen hab.
Gruß, Jo
  Mit Zitat antworten Zitat
badspirit

Registriert seit: 26. Mär 2010
3 Beiträge
 
#7

AW: SQLite Aliases funktionieren nicht

  Alt 31. Mai 2013, 09:19
Das hatte ich nicht bedacht. Dann werde ich das so tun.
  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 17:16 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