Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.29;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.029 c
1-1092196174
maxkat
2004-08-11 07:49
2004.08.29
глобальные переменные!


1-1092200671
Незнайка
2004-08-11 09:04
2004.08.29
Уважаемые мастера подскажите как средствами Delphi создавать PDF


8-1086455902
Black Raven
2004-06-05 21:18
2004.08.29
Сравнение двух изображений


14-1092145018
Cosinus
2004-08-10 17:36
2004.08.29
Алгоритм нахождения "магического квадрата" N-ой размерности


14-1092301818
ISP
2004-08-12 13:10
2004.08.29
О банках.