Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.021 c
14-1091891267
bender
2004-08-07 19:07
2004.08.29
gprs


10-1034156256
Sikkens
2002-10-09 13:37
2004.08.29
idl2cpp error!!! HELP!


14-1092378729
syte_ser78
2004-08-13 10:32
2004.08.29
Поясните смысл ошибки


1-1092389307
Strimer
2004-08-13 13:28
2004.08.29
Пустая дата в DateTimePicker


3-1091710441
Alexander1966
2004-08-05 16:54
2004.08.29
ODBC Drivers создание базы данных




   Наверх