Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.11.21;
Скачать: [xml.tar.bz2];

Вниз

Переменная вместо имени поля в запросе.   Найти похожие ветки 

 
sunwheel   (2002-11-01 14:16) [0]

Возможно ли использовать переменную вместо имени поля в запросе, в хранимой процедуре? Делаю примерно так:


CREATE PROCEDURE GETNEXTNUMBER (
FIELDNAME VARCHAR(254))
RETURNS (
RESULT INTEGER)
AS
DECLARE VARIABLE FFIELDNAME INTEGER;
begin
FIELDNAME = "F_IDNkl1"; /* Это для примера */
SELECT :FIELDNAME FROM IDNUMS
WHERE F_FIRST=1
INTO :FFIELDNAME;
...


На SELECT"е вылетает ошибка "Invalid variant type conversion"
Хотелось бы знать возможно ли вообще, как-либо, использовать переменные в качестве имени поля в запросах. Буду признателен за любой совет или ссылку.


 
Johnmen   (2002-11-01 14:24) [1]

Нельзя. Т.к. фактически это не параметр, а макроподстановка.


 
Alexandr   (2002-11-01 14:24) [2]

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


 
sunwheel   (2002-11-01 14:35) [3]

>Johnmen © (01.11.02 14:24)
Хреново, что нельзя, а так было бы все просто. :(

>Alexandr © (01.11.02 14:24)
Не совсем тебя понял, не мог бы ты на каком-нибудь примере пояснить?


 
Alexandr   (2002-11-01 14:41) [4]

CREATE PROCEDURE GETNEXTNUMBER (
FIELDNAME VARCHAR(254))
RETURNS (
RESULT INTEGER)
AS
DECLARE VARIABLE FFIELDNAME1 INTEGER;
DECLARE VARIABLE FFIELDNAME2 INTEGER;
DECLARE VARIABLE FFIELDNAME3 INTEGER;
DECLARE VARIABLE FFIELDNAME4 INTEGER;
DECLARE VARIABLE FFIELDNAME INTEGER;
begin
FIELDNAME = "F_IDNkl1"; /* Это для примера */
SELECT F_IDNkl1,F_IDNkl2,F_IDNkl3,F_IDNkl4 FROM IDNUMS
WHERE F_FIRST=1
INTO :FFIELDNAME1,:FFIELDNAME2,:FFIELDNAME3,:FFIELDNAME4;
if FIELDNAME="F_IDNkl1" then ffieldname=ffieldname1;
if FIELDNAME="F_IDNkl2" then ffieldname=ffieldname2;
if FIELDNAME="F_IDNkl3" then ffieldname=ffieldname3;
if FIELDNAME="F_IDNkl4" then ffieldname=ffieldname4;
....

теперь-то понял?



 
sunwheel   (2002-11-01 14:47) [5]

Спасибо, теперь понятно. Но это не то, что мне нужно, забыл сказать, что в таблице количество полей не постоянно. Ну что ж, придется через UDF все это реализовывать. :(
Всем спасибо.


 
Alexandr   (2002-11-01 14:50) [6]

не понял, как это "количество полей в таблице непостоянно".
и не понял, как эту задачу решить с помощью udf.

А впрочем, и фиг с ней.



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

Форум: "Базы";
Текущий архив: 2002.11.21;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.007 c
3-69120
novill
2002-11-04 09:44
2002.11.21
Как узнать значение ячейки DBGRID, пока ее правит пользователь?


6-69471
MK
2002-09-19 14:16
2002.11.21
Как узнать через TidHTTP, требует ли сервер логин и пароль?


1-69340
Новенький в Делфи
2002-11-12 19:52
2002.11.21
StringList1.LoadFromStream(MemoryStream1) - проблема


3-69138
62mkv
2002-10-30 15:09
2002.11.21
ПОМОГИТЕ ! Косяк с UPDATE (LocalSQL)


1-69428
Shrek
2002-11-11 12:33
2002.11.21
DBCtrlGrid





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский