Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запрос не срабатывает в Делфи 
:(
    Опции темы
Rodman
Дата 16.10.2007, 08:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 22
Всего: 122



Дароф. 

В прикрепленном файле пример, который должен показывать данные по параметрам. но этот запрос в Access работает, а из делфей не хотит.. я уже думал, что со шрифтами трабла - но английские бакафки тоже не находяться!

может есть у кого нить какие то идеи?

передача кода записи не подходит!

Сенкс

Присоединённый файл ( Кол-во скачиваний: 17 )
Присоединённый файл  Example.7z 31,52 Kb
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Savek
Дата 16.10.2007, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 10.4.2006
Где: Воронеж

Репутация: 7
Всего: 7



Кто-нибудь смог прочитать присоединенный файл? У меня одни крякозяблики
PM MAIL   Вверх
Rodman
Дата 16.10.2007, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 22
Всего: 122



Код

object Form1: TForm1
  Left = 192
  Top = 109
  Width = 870
  Height = 169
  Caption = 'Form1'
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'MS Sans Serif'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
  object DBGrid1: TDBGrid
    Left = 304
    Top = 0
    Width = 537
    Height = 129
    DataSource = DataSource1
    TabOrder = 0
    TitleFont.Charset = DEFAULT_CHARSET
    TitleFont.Color = clWindowText
    TitleFont.Height = -11
    TitleFont.Name = 'MS Sans Serif'
    TitleFont.Style = []
  end
  object ADOConnection1: TADOConnection
    Connected = True
    ConnectionString = 
      'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Test.mdb;Mode=ReadW' +
      'rite;Persist Security Info=False'
    LoginPrompt = False
    Mode = cmReadWrite
    Provider = 'Microsoft.Jet.OLEDB.4.0'
    Left = 64
    Top = 32
  end
  object ADOQuery1: TADOQuery
    Active = True
    Connection = ADOConnection1
    CursorType = ctStatic
    Parameters = <>
    SQL.Strings = (
      
        'SELECT Sum(ProjestList.ProjectPrice) AS [Sum-ProjectPrice], Sum(' +
        'CurrentMaker.ProjectSalary) AS [Sum-ProjectSalary], Sum([Projest' +
        'List]![ProjectPrice]-[CurrentMaker]![ProjectSalary]) AS asdas, [' +
        'MonthName]![NameMonth] & "-" & [ProjestList]![ProjectYear] AS '#1042#1099 +
        #1088#1072#1078#1077#1085#1080#1077'1, CurrentStatus.NameStatus'
      
        'FROM (MonthName INNER JOIN (CurrentStatus INNER JOIN ProjestList' +
        ' ON CurrentStatus.CodeStatus=ProjestList.CurrentStatus) ON Month' +
        'Name.CodeMonth=ProjestList.CodeMonth) INNER JOIN (Makers INNER J' +
        'OIN CurrentMaker ON Makers.CodeMaker=CurrentMaker.CodeMaker) ON ' +
        'ProjestList.CodeList=CurrentMaker.CodeProject'
      
        'GROUP BY [MonthName]![NameMonth] & "-" & [ProjestList]![ProjectY' +
        'ear], CurrentStatus.NameStatus, ProjestList.ProjectYear'
    
        'HAVING (((CurrentStatus.NameStatus) Like "*" & "asd" & "*") AND ' +
        '((ProjestList.ProjectYear)=2007));')
    Left = 120
    Top = 32
  end
  object DataSource1: TDataSource
    DataSet = ADOQuery1
    Left = 176
    Top = 32
  end
end

сам запрос
Код

SELECT Sum(ProjestList.ProjectPrice) AS [Sum-ProjectPrice], Sum(CurrentMaker.ProjectSalary) AS [Sum-ProjectSalary], Sum([ProjestList]![ProjectPrice]-[CurrentMaker]![ProjectSalary]) AS asdas, [MonthName]![NameMonth] & "-" & [ProjestList]![ProjectYear] AS Выражение1, CurrentStatus.NameStatus FROM (MonthName INNER JOIN (CurrentStatus INNER JOIN ProjestList ON CurrentStatus.CodeStatus=ProjestList.CurrentStatus) ON Month Name.CodeMonth=ProjestList.CodeMonth) INNER JOIN (Makers INNER JOIN CurrentMaker ON Makers.CodeMaker=CurrentMaker.CodeMaker) ON ProjestList.CodeList=CurrentMaker.CodeProjectGROUP BY [MonthName]![NameMonth] & "-" & [ProjestList]![ProjectYear], CurrentStatus.NameStatus, ProjestList.ProjectYearHAVING (((CurrentStatus.NameStatus) Like "*" & "asd" & "*") AND ((ProjestList.ProjectYear)=2007));


Присоединённый файл ( Кол-во скачиваний: 6 )
Присоединённый файл  Example.rar 36,78 Kb
PM MAIL WWW Skype GTalk YIM MSN   Вверх
MetalFan
Дата 16.10.2007, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: нет
Всего: 128



хм... а разве в LIKE не "%" используется в качестве "*"


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Rodman
Дата 16.10.2007, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 22
Всего: 122



MetalFan, пробовал оба варианта!
PM MAIL WWW Skype GTalk YIM MSN   Вверх
ALeXandrK
Дата 16.10.2007, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 342
Регистрация: 31.1.2007
Где: Санкт-Петербург

Репутация: 2
Всего: 6



А почему бы не использовать TADOStoredProc? 
... ну это как вариант...


--------------------
Богат не/ни тот, у кого много, а тот, кому хватает
PM WWW   Вверх
Savek
Дата 16.10.2007, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 10.4.2006
Где: Воронеж

Репутация: 7
Всего: 7



Запрос приведенный на форуме

Цитата(Rodman @  16.10.2007,  15:09 Найти цитируемый пост)
'HAVING (((CurrentStatus.NameStatus) Like "*" & "asd" & "*") AND ' +

отличается от того, что приведен в проекте:
Код

HAVING (((CurrentStatus.NameStatus) Like "*" & "а" & "*") AND

так вот, последний у меня заработал если изменить так:

Код

HAVING (((CurrentStatus.NameStatus) Like "%a%") AND


PM MAIL   Вверх
ALeXandrK
Дата 16.10.2007, 18:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 342
Регистрация: 31.1.2007
Где: Санкт-Петербург

Репутация: 2
Всего: 6



Savek: да верно, ошибка была именно там.
Проверил TADOStoredProc - тоже не работает.
Интересная штука получается... значит запрос при вызове из Delphi <> вызову из Access...


--------------------
Богат не/ни тот, у кого много, а тот, кому хватает
PM WWW   Вверх
Anark1
Дата 16.10.2007, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

Репутация: 1
Всего: 11



Цитата(ALeXandrK @ 16.10.2007,  18:16)
значит запрос при вызове из Delphi <> вызову из Access...

Только если запрос отличается или неверно настроено соединение. Недавний пример с Alca  smile 


--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
ALeXandrK
Дата 16.10.2007, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 342
Регистрация: 31.1.2007
Где: Санкт-Петербург

Репутация: 2
Всего: 6



Цитата(Anark1 @ 16.10.2007,  18:34)
Цитата(ALeXandrK @ 16.10.2007,  18:16)
значит запрос при вызове из Delphi <> вызову из Access...

Только если запрос отличается или неверно настроено соединение. Недавний пример с Alca  smile

Я скопировал ровно тот же запрос, что и в Access (см. приложение 3го поста) в Delphi, но
он тоже не выполнился, хотя в Access выполняется правильно...


--------------------
Богат не/ни тот, у кого много, а тот, кому хватает
PM WWW   Вверх
Anark1
Дата 16.10.2007, 19:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

Репутация: 1
Всего: 11



Цитата(ALeXandrK @ 16.10.2007,  19:26)
Я скопировал ровно тот же запрос, что и в Access (см. приложение 3го поста) в Delphi, но
он тоже не выполнился, хотя в Access выполняется правильно...

И что ? ALeXandrK, сам то подумай. Откуда бы запрос не выполнялся это одно и то же (разница только в привелегиях).
Я не знаю Access, может быть там можно выполнять какие то запросы с синтаксисом, понятным только Access`y. То есть существует некая прослойка между сервером и средой разработки (хотя и это врядли), которая бы обрабатывала данный запрос. Нужно просто перенастроить ADO.


--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
Rodman
Дата 17.10.2007, 08:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 22
Всего: 122



Цитата(Anark1 @  16.10.2007,  19:57 Найти цитируемый пост)
Нужно просто перенастроить ADO. 

настройки работают во всей проге одни и теже... т.е. остальные запросы правильно срабатывают...
Цитата(Savek @  16.10.2007,  16:45 Найти цитируемый пост)
так вот, последний у меня заработал если изменить так:

что значит заработал? у меня не работает!
Цитата(ALeXandrK @  16.10.2007,  19:26 Найти цитируемый пост)
Я скопировал ровно тот же запрос, что и в Access (см. приложение 3го поста) в Delphi, но
он тоже не выполнился, хотя в Access выполняется правильно... 

вот у меня таже фигня!
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Savek
Дата 17.10.2007, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 10.4.2006
Где: Воронеж

Репутация: 7
Всего: 7



вот рабочий проект

Это сообщение отредактировал(а) Savek - 17.10.2007, 10:22

Присоединённый файл ( Кол-во скачиваний: 6 )
Присоединённый файл  _____.rar 40,87 Kb
PM MAIL   Вверх
Anark1
Дата 17.10.2007, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

Репутация: 1
Всего: 11



Rodman, скажи мне пожалуйста разницу в выполнении запроса из Access и выполнении из любого другого места ? Он обрабатывается как то по другому ? Или результат разный ? Это бред.
Синтаксически верный запрос будет выполняться из любых мест.


--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
Rodman
Дата 17.10.2007, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 22
Всего: 122



Anark1, честно говоря я сам не пойму почему он не хочет срабатывать. За все время что я пишу - подобные запросы работали... а тут что то не объяснимое.

Если найду причину - отпишусь!
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Savek
Дата 17.10.2007, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 10.4.2006
Где: Воронеж

Репутация: 7
Всего: 7



Цитата(Anark1 @  17.10.2007,  13:37 Найти цитируемый пост)
Синтаксически верный запрос будет выполняться из любых мест.

Звучит логично, хотя на практике синтаксически правильный запрос
Код

select * from Table where Field like ("*")

в аксесе вернет все записи, а при попытке выполнить из делфи НД будет пустой, для восстановления работоспособности придется * заменить на %.
 Случай у Rodman, конечно требует исследования, но похоже тоже доказывает обратное 
PM MAIL   Вверх
Anark1
Дата 17.10.2007, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

Репутация: 1
Всего: 11



Savek, я не работал в среде MS Access, но уверен, что там а-ля Visual FoxPro повышенная интеграция языка для работы с БД. Ну то есть, напрмиер, в SQL запросы, выполняемые из Access можно вставлять переменные и т.д. То есть фактически Access перерабатывает данный запрос. Вполне естественно, что ADO не выполняет то, что выполняет среда (что именно написал выше). Так почему бы не писать все запросы на нормальном чистом SQL ?


--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.1018 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.