Вниз
Скачать: CL | DM;

можно получить элемент set а по строке?   Найти похожие ветки 

 
alo   (2004-11-27 11:43) [0]

другими словами, :

type TFieldType = (ftUnknown, ftString, ftSmallint, ftInteger, ftWord, ftBoolean, ftFloat, ftCurrency, .....

у меня есть
sFieldType := "ftFloat"
мне нужно
DataSet.Parameters.ParamByName(sParamName).DataType := _сюда_тип_который_соответствует_sFieldType_


 
Piter ©   (2004-11-27 12:43) [1]

Имхо, никак нельзя, кроме такого:

function StrToFieldType(s: string): TFieldType;
begin
 if s = "ftFloat" then Result := ftFloat
 else if s = "ftString" then Result := ftString
 else if ...
 else Result := ftUnknow;
end;


один вопрос - зачем такое нужно? Какая-то неправильная логика в приложении...


 
VMcL ©   (2004-11-27 13:48) [2]

Можно. Для этого используется Run-time Type Information (RTTI).

Пример.

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, TypInfo;

type
 TForm1 = class(TForm)
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

type
 TEnum = (ftUnknown, ftString, ftSmallint, ftInteger, ftWord, ftBoolean, ftFloat, ftCurrency);

procedure TForm1.Button1Click(Sender: TObject);
var
 A: TEnum;
begin
 A := TEnum(GetEnumValue(TypeInfo(TEnum), "ftSmallint"));
 if A = ftSmallint then
   ShowMessage("OK")
 else
   ShowMessage("Failed!");
end;

end.


 
tchn   (2004-11-27 14:43) [3]


> VMcL ©

ок, спасибо


> Piter ©


бывает нужно. в данном случае мне нужно приводить значение variant к типу, ссылка на который хранится в БД в виде строки


 
Anatoly Podgoretsky ©   (2004-11-27 14:50) [4]

А ты то тут причем, вопрос то от alo



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.047 c
1-1101878308
dolphin
2004-12-01 08:18
2004.12.12
record с неизвестным количеством переменных


1-1101844510
Fido24
2004-11-30 22:55
2004.12.12
Приложения на базе ISAPI/NSAPI???


3-1100508020
Stanislav
2004-11-15 11:40
2004.12.12
Где взять TDBTREEVIEW ?


1-1101720399
Tria
2004-11-29 12:26
2004.12.12
Taction, TMainMenu в mdi - проекте. Проблемы с Hotkey.


3-1100504182
wHammer
2004-11-15 10:36
2004.12.12
Возможно ли восстановление?




   Наверх