Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Erster Delphi-Code (https://www.delphipraxis.net/202299-erster-delphi-code.html)

Notter 17. Okt 2019 12:45

Erster Delphi-Code
 
Liebe Community
Muss heute zum ersten Mal Delphi-Codieren und muss ein Bild einlesen und in Fast Report(Delphi basiertes Auswertungstool) anzeigen lassen jedoch kriege ich eine "quoted string not properly terminated"

Delphi-Quellcode:
var
   strPicPath : String;      

procedure setPicturePath();
var    
    qryPicPath : TOraQuery;
begin
    qryPicPath := TOraQuery.Create(nil);
    qryPicPath.SQL.Text := 'select ''U:\Documents\logos\logo2.jpg';
    qryPicPath.open;
    qryPicPath.first;
    if not(qryPicPath.eof) then begin
        strPicPath := qryPicPath.fieldByName('pic4Path').AsString;
    end;
    qryPicPath.close;
    qryPicPath.free;
    qryPicPath:=nil;                                      
end;


begin
    Picture2.LoadFromFile('U:\Documents\logos\logo1.png');            
    setPicturePath();
    showmessage(strPicPath);      
end.

KodeZwerg 17. Okt 2019 15:27

AW: Erster Delphi-Code
 
ich vermute das hier ist der übeltäter.
Zitat:

Zitat von Notter (Beitrag 1449861)
qryPicPath.SQL.Text := 'select ''U:\Documents\logos\logo2.jpg';

aber ganz sicher bin ich mir gerade auch nicht, im editor hier gibt es ein delphi-helm, der erzeugt markierungen zwischen denen man code reinkopiert. Dann sieht der leserlicher/formatierter aus.

Gausi 17. Okt 2019 15:45

AW: Erster Delphi-Code
 
Keine Ahnung von Datenbanken, aber mein erster Versuch wäre so:
Delphi-Quellcode:
qryPicPath.SQL.Text := 'select ''U:\Documents\logos\logo2.jpg''';
Das führende Anführungszeichen beim Pfad muss man auch wieder schließen.

p80286 17. Okt 2019 17:15

AW: Erster Delphi-Code
 
Zitat:

Zitat von Gausi (Beitrag 1449878)
Keine Ahnung von Datenbanken,

Welche Datenbank. Selbst wenn man einen String hat der mit
Delphi-Quellcode:
Select
beginnt, taucht nicht durch Zauberhand eine DB auf, die sich durch das"Select" angesprochen fühlt.
Es kann natürlich sein, daß sich hinter
Delphi-Quellcode:
.Create
auch ein
Delphi-Quellcode:
.Connect
verbirgt, aber das ist nicht sehr üblich.

@Notter
Was genau willst Du womit erreichen?

Gruß
K-H

haentschman 18. Okt 2019 06:18

AW: Erster Delphi-Code
 
Moin...:P
...erst mal willkommen in der DP. :dp:

Zitat:

Muss heute zum ersten Mal Delphi-Codieren und muss ein Bild einlesen und in Fast Report(Delphi basiertes Auswertungstool) anzeigen lassen
...nichts für ungut...du mußt erst mal die Grundlagen lernen, bevor man dir solche Aufgaben gibt. :warn:
https://www.delphi-treff.de/tutorial...phi-crashkurs/

https://www.delphi-treff.de
PS: Auf dieser Seite findest du alles was du zum Einstieg brauchst. (Tutorials) :thumb:

Jasocul 18. Okt 2019 06:28

AW: Erster Delphi-Code
 
Bei einem Query ein Select auf eine jpg-Datei?
Sorry, aber wer hat dir denn diese Aufgabe gegeben, ohne dir Grundlagen-Kenntnisse in Delphi zu vermitteln? Und FastReport ist da noch ein besonderes Thema, wenn man noch nie damit gearbeitet hat.

Du wirst im Report sicher ein TfrxPictureView eingebunden haben. Dort bindest du das Bild entweder direkt ein, über den Auswahl-Dialog oder du musst das Bild zur Laufzeit zuweisen. Mit eine Query hat das in dem Fall nichts zu tun.

OlafSt 18. Okt 2019 07:33

AW: Erster Delphi-Code
 
Also wenn das wirklich ein Erstlingswerk wird, dann ist das Wasser nicht nur kalt. Das ist ein See aus flüssigem Stickstoff :-D

Ich tippe mal darauf, das da ne Oracle-DB ist, in der Pfade zu Bildern abgelegt sind. Diese sollen ausgelesen werden, das Bild dann in einem Fastreport erscheinen. Danach sieht das aus ;)

Um Geraffel mit Zeichenketten in solchen Statements zu umgehen benutze ich gerne
Delphi-Quellcode:
QuotedStr
bzw.
Delphi-Quellcode:
AnsiQuotedStr
. Das erspart einem viel Stress.

jobo 18. Okt 2019 10:55

AW: Erster Delphi-Code
 
Zitat:

Zitat von OlafSt (Beitrag 1449893)
Ich tippe mal darauf, das da ne Oracle-DB ist, in der Pfade zu Bildern abgelegt sind. Diese sollen ausgelesen werden, das Bild dann in einem Fastreport erscheinen. Danach sieht das aus ;)

Um Geraffel mit Zeichenketten in solchen Statements zu umgehen benutze ich gerne
Delphi-Quellcode:
QuotedStr
bzw.
Delphi-Quellcode:
AnsiQuotedStr
. Das erspart einem viel Stress.

Das ist vermutlich sehr nah dran.
Als Ergänzung noch:

Es macht keinen Sinn, (falsch gequotete) Pfad und Dateiname im Selectstatement anzugeben. Man will sie aus der DB auslesen.
Der SQL Text würde also eher so ungefähr lauten
'Select filepath from filetable where id = :picID'
wobei
filepath = Spaltenname
filetable = Tabellenname
id = Primärschlüssel der Tabelle
:picID = zu befüllender Parameter mit der gewünschten ID des Bildes *

Das Quoten des Dateinamens, Strich zählen usw. wäre damit unnötig.

*Alternativ eine Einschränkung über den Dateinamen angeben: "..where filepath like = :filename"
Was in der Form Sinn machen könnte, wenn eindeutige, im Kontext bereits bekannte Dateinamen verwendet werden.

p80286 18. Okt 2019 18:31

AW: Erster Delphi-Code
 
Naja der Fehler den er bekommen hat ist en Syntax-Fehler. Wenn er den behoben hat bekommt er den nächsten Fehler...

Gruß
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:59 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