![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Чтение генератора из InterBase [D6, WinXP]
Hadroran © (2005-02-22 10:20:00)Уважаемые знатоки.
Как прочесть из базы данных InterBase значение генератора. У меня получается только прибавлять. Может кто поможет кодом.
Hadroran (2005-02-22 12:45:00) [1]Ну ведь это только пример :) А так спасибо. Получается то, что хотелось.
Digitman (2005-02-22 12:41:00) [2]
> Hadroran (22.02.05 12:15) [9]
Johnmen, вероятно, имелл в виду, что твоя затея с чтением тек.значения генератора бестолковая ... разве что только поглазеть на прочитанное значение ... ибо через мгновение оно может и вправе измениться на сервере, еще даже ДО того момента как ты улицезреешь его в переменной gen_value
Hadroran (2005-02-22 12:15:00) [3]Почему!? Все правильно присваивается.
Johnmen (2005-02-22 12:10:00) [4]>Hadroran (22.02.05 12:06) [7]
Здесь всё абсолютно неверно.
Hadroran (2005-02-22 12:06:00) [5]Помогло только так:
var
gen_value:integer;
...
IBSQL.SQL.Add('select GEN_ID(GEN_NUM_NAKLAD, 0) from rdb$database');
IBSQL.ExecQuery;
gen_value := IBSQL.Fields[0].AsInteger;
ShowMessage(inttostr(gen_value));
IBSQL.Close;
...
Digitman (2005-02-22 11:32:00) [6]что-то я не вижу никакого повода для ошибки конвертации ..
и св-во TField.Value и переменная gen_value - обе вариантного типа, происходит прямое присвоение безо всяких конвертаций ..
а какой класс объекта-исключения ?
Hadroran (2005-02-22 11:12:00) [7]gen_value := IBSQL.Fields[0].Value;
var
gen_value:Variant;
Выдает ошибку при присваивании 'Invalid data conversion'
Digitman (2005-02-22 11:01:00) [8]
> 1. Бросаю на форму компонент IBSQL;
.. и назначаешь кроме этого его св-ва Database , Transaction
> 2. IBSQL.SQL.Append(select GEN_ID(<имя генератора>, 0) from
> <путь к базе>);
IBSQL.SQL.Add('select GEN_ID(<имя генератора>, 0) from
rdb$database');
! никакой не "<путь к базе>", а именно rdb$database!
rdb$database - это обязательно присутствующая в любой IB-базе сист.таблица , содержащая единственную запись (в дан.случае неважно что она содержит)
> А тогда кому его присвоить?
IBSQL.ExecQuery;
gen_value := IBSQL.Fields[0].Value;
IBSQL.Close;
Johnmen (2005-02-22 10:57:00) [9]http://www.ibase.ru/devinfo/generator.htm
Hadroran (2005-02-22 10:46:00) [10]Я правильно понял, что нужно сделать так:
1. Бросаю на форму компонент IBSQL;
2. IBSQL.SQL.Append(select GEN_ID(<имя генератора>, 0) from <путь к базе>);
3. IBSQL.ExecQuery;
Так? А тогда кому его присвоить?
Digitman (2005-02-22 10:32:00) [11]select GEN_ID(my_generator, 0) from rdb$database