Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Достать алиас таблицы / 13 сообщений из 13, страница 1 из 1
22.04.2020, 16:57
    #39950076
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Достать алиас таблицы
Есть такой код
Код: pascal
1.
2.
3.
4.
5.
6.
7.
var
  Fld: TIBXSQLVAR;
begin
  IBSQL1.SQL.Text := 'SELECT t.id as new_id FROM mytable t';
  IBSQL1.Prepare;
  Fld := IBSQL1.Fields[0];
end;

Я могу как-то достать полное оригинальное имя поля в виде строки "t.id"? Или хотя бы алиас таблицы "t"?

Fld.SqlVar.RelName возвращает полное имя таблицы "mytable"

У IBSQL1 можно получить хендл запроса

С уважением, Vasilisk
...
Рейтинг: 0 / 0
22.04.2020, 17:00
    #39950078
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Достать алиас таблицы
_Vasilisk_Fld.SqlVar.RelName возвращает полное имя таблицы "mytable"
А другие свойства у SqlVar есть? Если нет, я бы в первую очередь попробовал
AsXSQLVAR и далее sqlalias.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
22.04.2020, 17:51
    #39950102
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Достать алиас таблицы
Dimitry Sibiryakov
А другие свойства у SqlVar есть?
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
    property XSqlVar : Pointer read GetSQLVAR write SetSQLVAR;
    property SqlType : Short read GetSqlType write SetSqlType;
    property SqlDef : Short read GetSqlDef;
    property SqlScale : Short read GetSqlScale write SetSqlScale;
    property SqlPrecision : Short read GetSqlPrecision write SetSqlPrecision;
    property SqlSubtype : Short read GetSqlSubtype write SetSqlSubtype;
    property SqlLen : Short read GetSqlLen write SetSqlLen;
    property SqlData : PByte read GetSqlData write SetSqlData;
    property SqlInd : PShort read GetSqlInd write SetSqlInd;

    property SqlName : String read GetSqlName write SetSqlName;
    property RelName : String read GetRelName write SetRelName;
    property OwnName : String read GetOwnName write SetOwnName;
    property AliasName : String read GetAliasName write SetAliasName;

AliasName это алиас поля. Эти же поля и в XSqlVar. Ничего дополнительного я не вижу
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
  TXSQLVAR_V1 = record
    sqltype                     : Short;     (** datatype of field **)
    sqlscale                    : Short;     (** scale factor **)
    sqlsubtype                  : Short;     (** datatype subtype - BLOBs **)
					                                   (** & text types only **)
    sqllen                      : Short;     (** length of data area **)
    sqldata                     : PByte;     (** address of data **)
    sqlind                      : PShort;    (** address of indicator **)
                                             (** variable **)
    sqlname_length              : Short;     (** length of sqlname field **)
    (** name of field, name length + space for NULL **)
    sqlname                     : array[0..31] of Byte;
    relname_length              : Short;     (** length of relation name **)
    (** field's relation name + space for NULL **)
    relname                     : array[0..31] of Byte;
    ownname_length              : Short;     (** length of owner name **)
    (** relation's owner name + space for NULL **)
    ownname                     : array[0..31] of Byte;
    aliasname_length            : Short;     (** length of alias name **)
    (** relation's alias name + space for NULL **)
    aliasname                   : array[0..31] of Byte;
  end;  // TXSQLVAR_V1
...
Рейтинг: 0 / 0
22.04.2020, 17:58
    #39950106
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Достать алиас таблицы
И, кстати, в ibase.h то же самое
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
typedef struct
{
        ISC_SHORT       sqltype;                        
        ISC_SHORT       sqlscale;                       
        ISC_SHORT       sqlsubtype;                     
        ISC_SHORT       sqllen;                         
        ISC_SCHAR*      sqldata;                        
        ISC_SHORT*      sqlind;                         
        ISC_SHORT       sqlname_length;         
        ISC_SCHAR       sqlname[32];            
        ISC_SHORT       relname_length;         
        ISC_SCHAR       relname[32];            
        ISC_SHORT       ownname_length;         
        ISC_SCHAR       ownname[32];            
        ISC_SHORT       aliasname_length;       
        ISC_SCHAR       aliasname[32];          
} XSQLVAR;
...
Рейтинг: 0 / 0
22.04.2020, 18:11
    #39950119
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Достать алиас таблицы
_Vasilisk_AliasName это алиас поля.

(** relation's alias name + space for NULL **)
Процитированное как-то не сходится.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
22.04.2020, 18:14
    #39950121
ъъъъъ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Достать алиас таблицы
_Vasilisk_,

в fib+ есть:

Код: pascal
1.
2.
    function TableAliasForField(FieldIndex:integer):string; overload;
    function TableAliasForFieldByName(const aFieldName:string):string;


- сдери исходники, и всё...

(там парсится исходник sql запроса).
...
Рейтинг: 0 / 0
22.04.2020, 18:22
    #39950131
ъъъъъ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Достать алиас таблицы
_Vasilisk_,

и вообще! Как ты можешь до сих не пользоваться fib+???
...
Рейтинг: 0 / 0
22.04.2020, 18:33
    #39950134
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Достать алиас таблицы
Dimitry Sibiryakov
Процитированное как-то не сходится.
Но вот так. Там алиас поля.
...
Рейтинг: 0 / 0
22.04.2020, 18:50
    #39950144
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Достать алиас таблицы
_Vasilisk_Но вот так.

Действительно. И в документации там алиас поля. Значит не судьба.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
23.04.2020, 00:39
    #39950254
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Достать алиас таблицы
ъъъъъ


и вообще! Как ты можешь до сих не пользоваться fib+???


Который собственно не особо развивается (ну или я не в курсе, что тоже может быть).
...
Рейтинг: 0 / 0
23.04.2020, 00:57
    #39950262
Vlad F
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Достать алиас таблицы
DarkMaster,

Залётный что-ли?
Пусть даже, хотя бы, портируется. И под присмотром.
Что само по себе уже дело. Имхо.
...
Рейтинг: 0 / 0
25.04.2020, 19:02
    #39951415
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Достать алиас таблицы
Vlad F,

Насчет "залетности" - зачет :)

P.S. И да, я не сижу ни на IBX, ни на FIB+ (хотя оба щупал) - поэтому в плане актуальности, совместимости и прочего для сих продуктов - это не ко мне....
...
Рейтинг: 0 / 0
26.04.2020, 01:02
    #39951537
Vlad F
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Достать алиас таблицы
DarkMaster,

А на счёт перечисленных тобою пунктов никто к тебе вопросов, как будто, и не задавал. Причем, прошу заметить, что за язык здесь никто никого не тянет.
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Достать алиас таблицы / 13 сообщений из 13, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]