Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   string bei abfrage kürzen? (https://www.delphipraxis.net/147062-string-bei-abfrage-kuerzen.html)

khh 1. Feb 2010 07:55

Datenbank: firebird • Version: 2.1 • Zugriff über: zeos

string bei abfrage kürzen?
 
hallo zusammen,
ich möchte eine String aus der DB bei der Ausgabe auf den Drucker auf 12 Zeichen kürzen.
jetzt übergebe ich den wert folgendermassen:

Printer.Canvas.TextOut(frandlinks ,frandoben + cmtopixel(4,fdpih) , ZQuery.FieldByName('firma').AsString);

hier ein copy anzusetzen geht ja nicht.
Ist es möglich schon bei der sqlabfrage zu kürzen?

danke Gruss kh

Medium 1. Feb 2010 07:58

Re: string bei abfrage kürzen?
 
Warum geht kein copy? Folgendes sollte doch problemlos klappen:

Printer.Canvas.TextOut(frandlinks ,frandoben + cmtopixel(4,fdpih) , copy(ZQuery.FieldByName('firma').AsString, 1, 12));

:gruebel:

toms 1. Feb 2010 07:59

Re: string bei abfrage kürzen?
 
Zitat:

Zitat von khh
Printer.Canvas.TextOut(frandlinks ,frandoben + cmtopixel(4,fdpih) , ZQuery.FieldByName('firma').AsString);
hier ein copy anzusetzen geht ja nicht.

Hallo, warum sollte das Copy nicht gehen?

Delphi-Quellcode:
Printer.Canvas.TextOut(frandlinks ,frandoben + cmtopixel(4,fdpih) , Copy(ZQuery.FieldByName('firma').AsString, 1, 12));

mkinzler 1. Feb 2010 08:02

Re: string bei abfrage kürzen?
 
Oder direkt in der Ausgabe

SQL-Code:
select cast( <Feld> as char(12)), ...

khh 1. Feb 2010 08:12

Re: string bei abfrage kürzen?
 
Zitat:

Zitat von toms
Zitat:

Zitat von khh
Printer.Canvas.TextOut(frandlinks ,frandoben + cmtopixel(4,fdpih) , ZQuery.FieldByName('firma').AsString);
hier ein copy anzusetzen geht ja nicht.

Hallo, warum sollte das Copy nicht gehen?

Delphi-Quellcode:
Printer.Canvas.TextOut(frandlinks ,frandoben + cmtopixel(4,fdpih) , Copy(ZQuery.FieldByName('firma').AsString, 1, 12));

so gehts tatsächlich, aber warum gehst hier nicht?
hab ich irgendwo ne Klammer falsch?


Printer.Canvas.TextOut(frandlinks + cmtopixel(7,fdpih) ,frandoben + cmtopixel(fzeilenposition,fdpih) + cmtopixel(fzeilendruckposition,fdpih) , copy(ZQuery.FieldByName('artbezeichnung').AsString ),1,12)) ;

Error: Wrong number of parameters specified for call to "$fpc_ansistr_copy"

Gruss KH

toms 1. Feb 2010 08:15

Re: string bei abfrage kürzen?
 
Eine Klammer ist zu viel: AsString) -> AsString

Matze 1. Feb 2010 08:17

Re: string bei abfrage kürzen?
 
Zitat:

Zitat von khh
hab ich irgendwo ne Klammer falsch?

Jupp.

Delphi-Quellcode:
copy(ZQuery.FieldByName('artbezeichnung').AsString, 1, 12)
Nach "AsString" ist eine überflüssige Klammer. Vergleiche es einfach mit dem funktionierenden Beispiel von toms.

Grüße, Matze

Edit: Da war ich mal wieder zu langsam ...

khh 1. Feb 2010 08:19

Re: string bei abfrage kürzen?
 
Zitat:

Zitat von Matze
Zitat:

Zitat von khh
hab ich irgendwo ne Klammer falsch?

Jupp.

Delphi-Quellcode:
copy(ZQuery.FieldByName('artbezeichnung').AsString, 1, 12)
Nach "AsString" ist eine überflüssige Klammer. Vergleiche es einfach mit dem funktionierenden Beispiel von toms.

Grüße, Matze

Edit: Da war ich mal wieder zu langsam ...

ich danke euch,
ist halt noch früh am Morgen ;-)


Gruss Kh

shmia 1. Feb 2010 09:14

Re: string bei abfrage kürzen?
 
Man darf übrigens lokale Variablen verwenden, um den Sourcecode klarer darzustellen:
Delphi-Quellcode:
var
  artbez : string;
begin
  artbez := copy(ZQuery.FieldByName('artbezeichnung').AsString, 1, 12);
  Printer.Canvas.TextOut(frandlinks ,frandoben + cmtopixel(4,fdpih) , artbez);
Man muss nicht alles in eine Zeile pressen.

Stevie 1. Feb 2010 11:47

Re: string bei abfrage kürzen?
 
Oder nen Plugin benutzen, was Klammern highlightet 8-)


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