Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / ПРОБЛЕМА С SQL ЗАПРОСОМ / 17 сообщений из 17, страница 1 из 1
11.07.2003, 08:57
    #32205131
Cnupum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ПРОБЛЕМА С SQL ЗАПРОСОМ
sql.Add('select FIO,PB');
sql.Add('from table_main');
sql.Add('where PB='+datetostr(now));


/|\
/ | \
|
|

пишет : Число содержит синтаксическую ошибку в выражении запроса 'PB=11.07.2003'

какое еще число... поле PB-текстовое !!!!!!!!! но в нем храниться дата

а ну типа база в Access из Delphi7 через АДО
...
Рейтинг: 0 / 0
11.07.2003, 09:10
    #32205149
Vladimir_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ПРОБЛЕМА С SQL ЗАПРОСОМ
слабо 11.07.2003 взять в кавычки?
...
Рейтинг: 0 / 0
11.07.2003, 09:21
    #32205167
pkarklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ПРОБЛЕМА С SQL ЗАПРОСОМ
А еще и с параметрами научиться работать, особенно если это дата.
...
Рейтинг: 0 / 0
11.07.2003, 09:58
    #32205202
Cnupum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ПРОБЛЕМА С SQL ЗАПРОСОМ
как я их в кавычки возьму если я мпользую функцию NOW которая и выдает
в виде строки 11.07.2003 с помошью datetostr
или ты хочешь сказать что мне DatetoStr(now) в кавычки взять ??? lol
...
Рейтинг: 0 / 0
11.07.2003, 10:00
    #32205205
Cnupum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ПРОБЛЕМА С SQL ЗАПРОСОМ
pkarkin подскажи как с параметрами работать если это не дата как я уже выше сказал а СТРОКА !!!!!!!!
...
Рейтинг: 0 / 0
11.07.2003, 10:05
    #32205213
Jozo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ПРОБЛЕМА С SQL ЗАПРОСОМ
Код: plaintext
1.
2.
3.
sql.Add('select FIO,PB'); 
sql.Add('from table_main'); 
sql.Add('where PB='''+FormatDateTime('dd/mm/yyyy',now)+''' '); 


или

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
with query1 do begin
...................
 sql.Add('select FIO,PB'); 
 sql.Add('from table_main'); 
 sql.Add('where PB=:aaa ');
 ParamByName('aaa').AsDate := now; 
..............
end;
...
Рейтинг: 0 / 0
11.07.2003, 10:16
    #32205232
Cnupum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ПРОБЛЕМА С SQL ЗАПРОСОМ
Спасибо Jozo
реально помог
...
Рейтинг: 0 / 0
11.07.2003, 13:24
    #32205550
Cnupum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ПРОБЛЕМА С SQL ЗАПРОСОМ
Parameters.ParamByName('aaa').Value:=datetostr(now);
_____________________________________________________________

а еще вопрсик ... если у меня 30 полей вот такой вот запросик .....
и по любому получается больше 255 символов т.е. в строку не влазиет
а переносить

where #############
########

вот так вот не дает
чё делать ???
...
Рейтинг: 0 / 0
11.07.2003, 13:32
    #32205568
pkarklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ПРОБЛЕМА С SQL ЗАПРОСОМ
2 Cnupum

Ему брито, а он стрижено.

Код: plaintext
Parameters.ParamByName('aaa').Value:=datetostr(now); 


Вот при такой передаче параметра, его реальное значение будет зависеть от региональных настроек. Народ на эти грабли наступает еженедельно. А при таком

Код: plaintext
ParamByName('aaa').AsDate := now


нет.


Это в какую такую строку у тебя не влазит? Строка не ограничена 255 символами, а вот строковая константа да. А зачем тебе это все в коде хранить. Положил компонент, установил в дизайн-тайм свойство SQL, обозначил параметры, а в рантайм тока параметры передавай и открывай.
...
Рейтинг: 0 / 0
11.07.2003, 13:34
    #32205573
Cnupum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ПРОБЛЕМА С SQL ЗАПРОСОМ
а я типа не пробовал так передавать ... асдате не хотит ... вот так
...
Рейтинг: 0 / 0
11.07.2003, 13:42
    #32205589
Cnupum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ПРОБЛЕМА С SQL ЗАПРОСОМ
я конечно рад, что ты такой умный и шаришь в делфи , но я вот тока начинаю разбираться
Объясняю задачу: мне надо сформировать запрос, который будет состоять из более чем 20-ти полей т.е. :

фамилия, 1 экзамен, 2 экзамен, 3 экзамен.......25 экзамен.

так....

в этих полях храниться дата сдачи вот так
и мне надо выбрать те которые сданы например сегодня, как выбрать 1,2,3,4-10 полей я понял

with query1 do begin
...................
sql.Add('select FIO,PB,PC');
sql.Add('from table_main');
sql.Add('where PB=:a or PC=:a ');
ParamByName('a').AsDate := now;
..............
end;


но что делать если их 25 штук и компилятор не допускает такую длинную строку
...
Рейтинг: 0 / 0
11.07.2003, 13:44
    #32205595
Cnupum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ПРОБЛЕМА С SQL ЗАПРОСОМ
[Error] UnitMain.pas(293): String literals may have at most 255 elements
...
Рейтинг: 0 / 0
11.07.2003, 13:59
    #32205625
pkarklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ПРОБЛЕМА С SQL ЗАПРОСОМ
а я типа не пробовал так передавать ... асдате не хотит ... вот так

AsDateTime надо, конечно.

String literals may have at most 255 elements

Литерал да.

в этих полях храниться дата сдачи вот так
и мне надо выбрать те которые сданы например сегодня, как выбрать 1,2,3,4-10 полей я понял


А почему экзамены то по-полям расписаны то. А если число экзаменов измениться что, структуру таблиц будешь менять. А вот если бы экзамены были в записях, то использую перекрестный запрос (ты вроде с Акксесом работаешь) такой набор было бы получить легко.

но что делать если их 25 штук и компилятор не допускает такую длинную строку

Еще раз повторюсь. НЕ рисуй тексты запросов в коде. Для этого есть свойство SQL, вот его и редактируй в дезайн-тайм.
...
Рейтинг: 0 / 0
11.07.2003, 14:30
    #32205692
Cnupum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ПРОБЛЕМА С SQL ЗАПРОСОМ
был бы рад услышать конкретные предложения ну раз так буду сам ломать голову целые выходные .....

но пока я сдесь сижу экзамы точно не изменяться.... так что можно это как нить обойти

ну а так pkarklin (если тебя интересует)
каждые три года проводяться экзамены у сотрудников моей фирмы
их всего 19 штук если говорить гонкретно... и они меняться скорее всего не будут (я так думаю еще столько же лет сколько предприятию нужна будет моя прога)

вот у меня есть тейбл с полями: должность и все 19 видов экзамов (всего 20)
там храняться периоды здачи экзамена для каждой профессии (кто то сдает 4 а кто то и все 19 предметов и у кажого свой набор)

должность 1экз 2 экз 3 экз 4 экз ..... и т.д.

директор 3 3 0 0

специалист 3 0 3 0

3 значит через три года сдает экзам , 0 - не сдает

вот так .....
а еще есть тейбл где учитывается для каждого конкретного сотрудника
когда сдавался последний экзам и когда будет сдаваться он в след. раз

т.е.
Иванов Иван Иваныч : Директор : 11.11.00 : 11.11.03 : 01.01.01 : 01.01.04 : не сдает : не сдает

и т.п.

и вот надо сделать выборку тех сотрудников которые просрочили сдачу
есть конкретные предложения ???
...
Рейтинг: 0 / 0
11.07.2003, 14:41
    #32205717
pkarklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ПРОБЛЕМА С SQL ЗАПРОСОМ
был бы рад услышать конкретные предложения

Ну не знаю, что тебе еще конкретней предложить?


...
и вот надо сделать выборку тех сотрудников которые просрочили сдачу
есть конкретные предложения ???


Конкретное предложение я тебе уже давал. Информация о сдаче должна храниться в записях, а не по идиотски, в полях. Из за этого у тебя и геморой. Потому, чтоб узнать, сдал ли дядя Вася экзамен № 13, надо один запрос, всмысле одно поле проверять, а если № 1, то другое. А были бы это записи, то все элементарно проверялось бы на предмет существования записи с № экзамена запросом с параметрами № экзамена, челове, срок сдачи...
...
Рейтинг: 0 / 0
11.07.2003, 14:48
    #32205729
Cnupum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ПРОБЛЕМА С SQL ЗАПРОСОМ
усе спасибо .... АААгромное
правда сейчас придеться многое переделывать я бы сказал все хе-хе
каждый раз когда сажусь писать че - нить повторяю :"так сйчас буду проектировать систему" а в итоге получается как всегда открываю делфи а не кейс средства для проектировки и понеслааась....
...
Рейтинг: 0 / 0
11.07.2003, 14:53
    #32205745
pkarklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ПРОБЛЕМА С SQL ЗАПРОСОМ
усе спасибо .... АААгромное

Да не за что?

правда сейчас придеться многое переделывать я бы сказал все хе-хе

А кому счас легко. :-) Переделывай структуру хранения информации.

каждый раз когда сажусь писать че - нить повторяю :"так сйчас буду проектировать систему" а в итоге получается как всегда открываю делфи а не кейс средства для проектировки и понеслааась....

Вот-вот. 80% обычно уходит на проектирование и тока 20% на реализацию. Можно и без кейсов обойтись (я во всяком случаи обхожусь). С карандашиком и листочком. Да, самое главное чуть не забыл и с головой. Удачи.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / ПРОБЛЕМА С SQL ЗАПРОСОМ / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]