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

Вниз

SQL + функция Format   Найти похожие ветки 

 
reticon ©   (2004-08-03 18:35) [0]

Есть запрос, отформатированный по разному с помощью ф-ции Format:

1. Query4.SQL.Add(Format("INSERT INTO iplan_tree VALUES (%d, 0, ""192.168.0.4"")", [4]));

2. Query4.SQL.Add(Format("INSERT INTO iplan_tree VALUES (%d, 0, %s)", [4, "192.168.0.104"]));

Кто-нибудь может мне объяснить, почему первый Query4.SQL.Add выполняется нормально, без ошибок, а второй ну никак не хочет работать и выдает ошибку (SQL Error: ERROR: parser: parse error at or near ".0" at character 52)?

Не пойму я что-то, в чем проблема?


 
Johnmen ©   (2004-08-03 23:42) [1]

Так делается же макроподстановка строкового ЗНАЧЕНИЯ.
Надо

Query4.SQL.Add(Format("INSERT INTO iplan_tree VALUES (%d, 0, %s)", [4, """192.168.0.104"""]));

или

Query4.SQL.Add(Format("INSERT INTO iplan_tree VALUES (%d, 0, %s)", [4, ""192.168.0.104""]));


 
reticon ©   (2004-08-04 10:35) [2]

делаю так:


...
addres := ComboBox1.Text;
date1 := DateTimePicker1.Date;
...
Query4.Close;
Query4.SQL.Clear;
Query4.SQL.Add(Format("SELECT * FROM stats WHERE stats.resource_id = (SELECT resource_id FROM iplan_tree WHERE address = %s) and date = %s", [ComboBox1.Text, DateTimePicker1.Date]));
...


та же фигня...


 
Соловьев ©   (2004-08-04 10:36) [3]


> Query4.Close;
> Query4.SQL.Clear;
> Query4.SQL.Add(Format("SELECT * FROM stats WHERE stats.resource_id
> = (SELECT resource_id FROM iplan_tree WHERE address = %s)
> and date = %s", [ComboBox1.Text, DateTimePicker1.Date]));

используй параметры


 
Соловьев ©   (2004-08-04 10:46) [4]


> date = %s", [ComboBox1.Text, DateTimePicker1.Date]));

или приводи типы. DateToStr(DateTimePicker1.Date)


 
Плохиш ©   (2004-08-04 10:52) [5]

>reticon ©   (03.08.04 18:35)

Количество апострофов ни на какие мысли не наводит?

QuotedStr


 
reticon ©   (2004-08-04 11:55) [6]

Это все понятно... но немного не то.

вот это:

ZQuery4.SQL.Add(Format("SELECT * FROM public.stats WHERE public.stats.resource_id = (SELECT resource_id FROM public.iplan_tree WHERE address = %s) and count = %d", ["""192.168.0.155""", 5977]));

работает, только что проверил.

А как сделать его ДИНАМИЧЕСКИМ?


 
Соловьев ©   (2004-08-04 11:57) [7]


> А как сделать его ДИНАМИЧЕСКИМ?

т.е. парамметры? TQuery.Params+F1
или что ты имеешь ввиду под динамическим?


 
reticon ©   (2004-08-04 12:22) [8]

ну да, параметрический запрос, если это будет работать...


 
reticon ©   (2004-08-04 13:09) [9]

все, спасибо, разобрался..



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

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

Наверх




Память: 0.46 MB
Время: 0.029 c
3-1091551873
jenbond
2004-08-03 20:51
2004.08.29
Контроль подключения к БД


4-1089969123
Igor G
2004-07-16 13:12
2004.08.29
создать нового пользователя системы


14-1092103092
Думкин
2004-08-10 05:58
2004.08.29
С днем рождения! 10 августа


8-1086764701
Mig
2004-06-09 11:05
2004.08.29
Перевод вордовского документа в картинку


1-1092455709
race1
2004-08-14 07:55
2004.08.29
окно и размер





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский