Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Mysql Numerische Feldnamen (https://www.delphipraxis.net/102744-mysql-numerische-feldnamen.html)

Faxman 3. Nov 2007 18:35

Datenbank: Mysql • Version: 5.2.x • Zugriff über: ADO

Mysql Numerische Feldnamen
 
Hallo zusammen,

hier mein aktuelles problem.
eine mysql tabelle hat nummern als Sspaltenbezeichner (47,67,.....).
wenn ich nun über ado auf dies felder zugreifen will ist dies nur mit quoted srings in der form:
select `47` from tabelname where whatever möglich.
da diese feldnamen dynamisch abgefragt werden sollen steht anstelle des feldnamens `47` ein :parameter
also so:
DM_Base_Data.ADOQ_Multi.SQL.Add('select :myvalue as calcprice from preis_matrix where preis_matrix.43=1.99');
DM_Base_Data.ADOQ_Multi.Parameters.ParamValues['myvalue']:=47;

quotes die notwendig währen um das feld/spalte richtig anzusprechen können nicht übergeben werden,
zumindest ich weis nicht wie.

habt ihr eine idee?
AnsiQuotedString scheint auch keine lösung zu sein.

help please


danke im voraus.

marabu 3. Nov 2007 18:56

Re: Mysql Numerische Feldnamen
 
Hallo,

lies mal mindestens diesen Beitrag: klick - eventuell den ganzen Thread.

Grüße vom marabu

Faxman 3. Nov 2007 19:07

Re: Mysql Numerische Feldnamen
 
hallo marabu,

danke für die info.
habe parameter bisher auch immer nur bei where etc. verwendet.
das problem ist aber, das der feldnamen dynamisch ist,
hast du einen vorschlag, wie ich das lösen kann?


mir fällt dazu nichts ein.
das problem mit den qouted feldnamen löst sich auch nicht auf.
die einzige möglichkeit wäre für jeden vorkommenden feldnamen 1-n ein eigenes script zu bauen.

mmmm..................

Dax 3. Nov 2007 19:09

Re: Mysql Numerische Feldnamen
 
Wie wäre es mit Delphi-Referenz durchsuchenFormat?

marabu 4. Nov 2007 09:04

Re: Mysql Numerische Feldnamen
 
Moin,

die Verwendung von Format() hat Bernhard in dem verlinkten Thread auch schon angedient. Oft verwendet man Format-Strings und SQL-Parameter nebeneinander:

Delphi-Quellcode:
const
  SEL = 'select "%s" as calcprice from preis_matrix where "43" = :value';
var
  colName: string;
begin
  // colName := '47';
  with DM_Base_Data.ADOQ_Multi do
  begin
    SQL.Text := Format(SEL, [colName]);
    Parameters.ParamValues['value'] := 1.99;
    Open;
    // ShowMessage(FloatToStr(Fields[0].AsFloat));
    Close;
  end;
end;
Ich habe die Ansi Quotes verwendet - ich mag die backticks nicht: SET sql_mode='ANSI_QUOTES'

Freundliche Grüße

Faxman 4. Nov 2007 12:15

Re: Mysql Numerische Feldnamen
 
hallo marabu,
hallo berhard?!?

vielen dank für diese info's.

genau das löst mein problem. :hi: :spin:
wieder einiges gelernt!


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