Модераторы: Snowy, MetalFan, bems, Poseidon

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите с AdoQuery 
V
    Опции темы
Juiko
Дата 27.6.2011, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Всем доброго дня!
Помогите пожалуйста разобраться.
Есть программа, работающая с базой данных. Там настроено подключение к SQL-серверу, всё работает отлично.
Но когда я попыталась подключить копию базы в MS Access для личного пользования появляются ошибки. При попытке выставить свойство Active в значение True у AdoQuery, возникает шибка Missing SQL property. Почему?
PM MAIL ICQ   Вверх
Данкинг
Дата 27.6.2011, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



Цитата(Juiko @  27.6.2011,  11:43 Найти цитируемый пост)
Но когда я попыталась подключить копию базы в MS Access 

Как понять "копию базы MS Access", если база у нас в SQL?
Цитата(Juiko @  27.6.2011,  11:43 Найти цитируемый пост)
Missing SQL property. Почему? 

Вероятно, потому что отсутствует свойство AdoQuery.SQL.Text ?


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Juiko
Дата 27.6.2011, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



копию базы в акцессе потому что для личного пользования дома мне админы наши дали так.

а со свойством AdoQuery.SQL.Text..да, его вроде как нет..но изначально же всё работало и работает..программу писала не я , дали дорабатывать. Я с делфи в первый раз работаю, поэтому извините если где-то что-то не понимаю.

но в подключении к SQL и у AdoTable и у AdoQuery свойство Active стоит False..тогда как оно подключается и работает?

Это сообщение отредактировал(а) Juiko - 27.6.2011, 11:02
PM MAIL ICQ   Вверх
Данкинг
Дата 27.6.2011, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



Цитата(Juiko @  27.6.2011,  11:55 Найти цитируемый пост)
копию базы в акцессе

Отсюда вывод: SQL уже и ни при чём. smile 
Цитата(Juiko @  27.6.2011,  11:55 Найти цитируемый пост)
а со свойством AdoQuery.SQL.Text..да, его вроде как нет.

Вполне вероятно, что его нет, и оно задаётся динамически в коде программы. Равно как опосля сего в коде задаётся AdoQuery.Active:=true;
Цитата(Juiko @  27.6.2011,  11:55 Найти цитируемый пост)
дали дорабатывать.

Вот переработай её под Access. Строку подключения, кстати, изменила, надеюсь?


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Juiko
Дата 27.6.2011, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



разумеетсяsmileпрограмма запускается, но когда дело доходит до выполнения запросов вылетает в ошибки..пыталась в настройках АдоКвери менять - выскакивает вышеуказанная ошибка.
не посоветуете кстати большой умной книжки где про это подробно написано?
PM MAIL ICQ   Вверх
Данкинг
Дата 27.6.2011, 11:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



Цитата(Juiko @  27.6.2011,  12:16 Найти цитируемый пост)
выскакивает вышеуказанная ошибка.

Если у AdoQuery свойство .SQL.Text отсутствует, то разумеется, работать не будет.
Цитата(Juiko @  27.6.2011,  12:16 Найти цитируемый пост)
не посоветуете кстати большой умной книжки где про это подробно написано? 

На форуме примеров по работе с ADO масса. smile А так - в любой книге про работу с БД из Дельфи описывается ADO.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Juiko
Дата 27.6.2011, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата

Если у AdoQuery свойство .SQL.Text отсутствует, то разумеется, работать не будет.


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

спасибо за направление, пойду копать и разбиратьсяsmile
PM MAIL ICQ   Вверх
Данкинг
Дата 27.6.2011, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



Цитата(Juiko @  27.6.2011,  12:43 Найти цитируемый пост)
 или где оно указано. 

В коде программы, вероятно. А что должен делать запрос?
Цитата(Juiko @  27.6.2011,  12:43 Найти цитируемый пост)
, и что и где нужно сделать чтобы заработало у меня. 

Прописать в коде, я же говорил уже.
Цитата(Juiko @  27.6.2011,  12:43 Найти цитируемый пост)
 пойду копать 

Сильно не копай. smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Juiko
Дата 27.6.2011, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



этот конкретный запрос заполняе TBGrid.

Код

procedure TForm4.Button1Click(Sender: TObject);
var
   God:string[7];
   Mes:string[5];
   Den:string[5];
   Par:string[10];
   Stan:string[10];
   Data1:string[15];
   Data2:string[15];
   n,m: integer;
   Znach:string[10];
begin
   Form4.ProgressBar1.Visible:=True;
   Form4.ProgressBar1.Min:=0;
   Form4.DBGrid1.Visible:=False;
   Form4.StringGrid1.Visible:=False;
   Case Form4.ComboBox1.ItemIndex of
   0: Mes:='01';
   1: Mes:='02';
   2: Mes:='03';
   3: Mes:='04';
   4: Mes:='05';
   5: Mes:='06';
   6: Mes:='07';
   7: Mes:='08';
   8: Mes:='09';
   9: Mes:='10';
   10: Mes:='11';
   11: Mes:='12';
   end;
   God:=Form4.ComboBox2.Items[Form4.ComboBox2.ItemIndex];
   Case Form4.ComboBox3.ItemIndex of
   0: Stan:='37701';
   1: Stan:='33702';
   2: Stan:='33603';
   3: Stan:='32703';
   4: Stan:='38701';
   5: Stan:='36701';
   end;
   Case Form4.ComboBox4.ItemIndex of
   0: Par:='FOF2';
   1: Par:='HF2';
   2: Par:='F2M3000';
   3: Par:='F2Dif';
   4: Par:='FMin';
   5: Par:='FOEs';
   6: Par:='HEs';
   7: Par:='FOF1';
   8: Par:='HF1';
   9: Par:='F1M3000';
   10: Par:='HPF2';
   11: Par:='FOE';
   12: Par:='HE';
   13: Par:='FBEs';
   14: Par:='EsTip';
   15: Par:='FXI';
   16: Par:='';
   end;
   If Mes<>'12' then Den:=Copy(DateToStr(StrToDate('01.'+IntToStr(StrToInt(Mes)+1)+'.'+God)-1),1,2)
   else Den:='31';
   If Par='' then
      begin
         Data1:='01.'+Mes+'.'+God;
         Data2:=Den+'.'+Mes+'.'+God;
         DataModule3.ADOTable1.Close;
         DataModule3.ADOTable1.Filtered:=False;
         DataModule3.ADOTable1.Filter:='Ind = '+''''+Form4.ComboBox3.Items[Form4.ComboBox3.ItemIndex]+''''+' and Date >= '''+ Data1+ ''''+' and Date <= '''+ Data2+ '''';
         DataModule3.ADOTable1.Filtered:=True;
         DataModule3.ADOTable1.Open;
         DataModule3.ADOTable1.First;
         Form4.DBGrid1.Visible:=True;
         Form4.Button3.Enabled:=False;
      end
   else
      begin
         DataModule3.ADOTable1.Filtered:=False;
         For n:=1 to 24 do
            begin
               For m:=1 to 31 do
                  begin
                     Form4.StringGrid1.Cells[n,m]:='';
                  end;
            end;
         Form4.StringGrid1.Visible:=True;
         Form4.StringGrid1.DefaultColWidth:=36;
         Form4.StringGrid1.DefaultRowHeight:=18;
         Form4.StringGrid1.ColCount:=25;
         Form4.StringGrid1.RowCount:=StrToInt(Den)+1;
         Form4.StringGrid1.ColWidths[0]:=60;
         For n:=0 to 23 do Form4.StringGrid1.Cells[n+1,0]:=IntToStr(n);
         For m:=1 to StrToInt(Den) do Form4.StringGrid1.Cells[0,m]:=DateToStr(StrToDate(IntToStr(m)+'.'+Mes+'.'+God));
         DataModule3.ADOQuery1.SQL.Clear;
         DataModule3.ADOQuery1.SQL.Add('SELECT Date, Time, '+Par+' FROM dbo.Ionka WHERE (Ind = '''+Stan+''') AND (Date >= CONVERT(DATETIME, '''+God+'-'+Mes+'-01'+' 00:00:00'', 102)) AND (Date <= CONVERT(DATETIME, '''+God+'-'+Mes+'-'+Den+' 00:00:00'', 102))');
         DataModule3.ADOQuery1.Open;
         Form4.ProgressBar1.Position:=0;
         Form4.ProgressBar1.Max:=StrToInt(Den)*24;
         For m:=1 to StrToInt(Den) do
            begin
               For n:=0 to 23 do
                  begin
                     If DataModule3.ADOQuery1.Locate('Date;Time',VarArrayOf([StrToDate(IntToStr(m)+'.'+Mes+'.'+God),StrToTime(IntToStr(n)+':00')]),[]) then
                        begin
                           Znach:=Trim(DataModule3.ADOQuery1.FieldByName(Par).AsString);
                           If (Znach='//0') or (Znach='/0') then Form4.StringGrid1.Cells[n+1,m]:='0';
                           ......
                           If (Znach='//9') or (Znach='/9') then Form4.StringGrid1.Cells[n+1,m]:='R';
                           If (Znach='/') then Form4.StringGrid1.Cells[n+1,m]:='G';
                           If (Znach[1]<>'/') and (Znach[1]<>'') then Form4.StringGrid1.Cells[n+1,m]:=Znach;
                        end
                     else
                        Form4.StringGrid1.Cells[n+1,m]:='';
                     Form4.ProgressBar1.Position:=Form4.ProgressBar1.Position+1;
                  end;
            end;
         Form4.Button3.Enabled:=True;            
         DataModule3.ADOQuery1.First;
      end;
   DataModule3.ADOQuery1.Close;
   Form4.ProgressBar1.Visible:=False;
end;


вот как то так дело было
PM MAIL ICQ   Вверх
Данкинг
Дата 27.6.2011, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



Во-первых, DbGrid, во-вторых, он не заполняется, а получает данные из подключённого к нему источника.
В-третьих, в данном коде всё же присутствует заполнение AdoQuery1.SQL.Text:
Код

         DataModule3.ADOQuery1.SQL.Add('......');


Добавлено через 1 минуту и 17 секунд
Цитата(Juiko @  27.6.2011,  11:55 Найти цитируемый пост)
но в подключении к SQL и у AdoTable и у AdoQuery свойство Active стоит False..тогда как оно подключается и работает?

Наверное, в  коде программы оно меняется на .True. smile 

Это сообщение отредактировал(а) Данкинг - 27.6.2011, 14:51


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Juiko
Дата 27.6.2011, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



а почему тогда не работает?

просто я правда не вижу ни одной причины почему бы ему не работать..

Добавлено через 2 минуты и 38 секунд
Цитата

Наверное, в  коде программы оно меняется на .True.  


да, это я уже понялаsmile

Это сообщение отредактировал(а) Juiko - 27.6.2011, 14:54
PM MAIL ICQ   Вверх
Данкинг
Дата 27.6.2011, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



Цитата(Juiko @  27.6.2011,  15:52 Найти цитируемый пост)
а почему тогда не работает?

Если ты в конструкторе пытаешься сделать AdoQuery активным, то ясное дело, что вылезет ошибка, поскольку свойства .SQL.Text у него ещё нет; это свойство задаётся к коде.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Juiko
Дата 27.6.2011, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



да..это я тоже уже поняла что конструктор трогать вообще не надо было.
но если сделать строку подключения к акцессу и запустить программу то выскакивает ошибка вроде "не найден файл dbo.mdb"..тоесть я так понимаю он к таблице не может подключиться..а вот почему - не могу понять..по идее в коде то написано всё..

Это сообщение отредактировал(а) Juiko - 27.6.2011, 15:17
PM MAIL ICQ   Вверх
Данкинг
Дата 27.6.2011, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



Код со строкой подключения покажи.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Juiko
Дата 27.6.2011, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



я делаю шаг за шагом, всё как помощник просит..а он потом всякое дописывает там..

Код

Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=C:\Documents and Settings\julka\Ðàáî÷èé ñòîë\ionka_by_Juiko\Ionosfera_DB.mdb;Mode=ReadWrite;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False


PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

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

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

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


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

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


 




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


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

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