Missing sql property delphi ошибка

When trying to execute the code:

function TDBClass.addNome(nome: String): String;
var
  rsnome: TADOQuery;
begin
  rsnome := TADOQuery.Create(nil);
  rsnome.Connection := connection;
  rsnome.Open();
  rsnome.SQL.Clear;
  rsnome.SQL.Text:='UPDATE enroll SET nome = "test" where id ="1"';
  rsnome.Parameters.ParamByName('nome').Value:= nome;
  rsnome.ExecSQL;
  rsnome.post();
  rsnome.Close();
  rsnome.Free();
end;

I’m receiving the error message «Missing SQL property». Where did I go wrong?
Thanks in advance!

Garett's user avatar

Garett

16.5k5 gold badges54 silver badges63 bronze badges

asked Nov 30, 2011 at 12:43

Albert E. Souza's user avatar

You’re calling rsnome.Open before setting the SQL by rsnome.SQL.Text := ....

answered Nov 30, 2011 at 12:47

Ondrej Kelle's user avatar

Ondrej KelleOndrej Kelle

36.9k2 gold badges65 silver badges128 bronze badges

2

I don’t think you want to use Open at all, and you are using parameters incorrectly.
i.e. the SQL doesn’t have any :PARAM placeholders in it. I think it should be something like: rsnome.SQL.Text:='UPDATE enroll SET nome = :NOME where id = :ID';

See this example:
AdoQuery Error using parameters

Community's user avatar

answered Nov 30, 2011 at 13:03

Chris Thornton's user avatar

Chris ThorntonChris Thornton

15.6k5 gold badges37 silver badges62 bronze badges

1

You have several errors. You’re calling Open before you’ve assigned ths SQL (and without needing to do so).

You’re trying to set a parameter value you haven’t created a parameter to accept. (BTW, I’d make ID also a parameter, so you can use this to update more than one person’s name.)

You’re not handling making sure that things get cleaned up in case there’s an error (which given the code you posted there certainly will be).

You’re using Post, which isn’t necessary with an SQL database.

Try something like this instead:

function TDBClass.addNome(nome: String): String;
var
  rsnome: TADOQuery;
begin
  rsnome := TADOQuery.Create(nil);
  try
    rsnome.Connection := connection;
    rsnome.SQL.Clear;
    rsnome.SQL.Text:='UPDATE enroll SET nome = :nome where id ="1"';
    rsnome.Parameters.ParamByName('nome').Value:= nome;
    rsnome.ExecSQL;
    rsnome.Close();
  finally
    rsnome.Free();
  end;
end;

answered Nov 30, 2011 at 13:59

Ken White's user avatar

Ken WhiteKen White

123k14 gold badges224 silver badges441 bronze badges

0

0 / 0 / 0

Регистрация: 04.03.2011

Сообщений: 25

1

22.03.2011, 15:24. Показов 29474. Ответов 20


Студворк — интернет-сервис помощи студентам

Присоединил DBGrid к DataSoutce1, начинаю создавать столбцы и прикреплять к FieldName и при открытии FieldName выходит ошибка ADOQuery1: Missing SQL property. Хотя первую форму создал без проблем, работает нормально, а вот вторая не хочет.

Добавлено через 10 минут

Цитата
Сообщение от I_Inquisitor
Посмотреть сообщение

Присоединил DBGrid к DataSoutce1, начинаю создавать столбцы и прикреплять к FieldName и при открытии FieldName выходит ошибка ADOQuery1: Missing SQL property. Хотя первую форму создал без проблем, работает нормально, а вот вторая не хочет.

Все, я понял в чем косяк, забыл завести новые поля в ADOQuery.



0



Супер-модератор

8783 / 2536 / 144

Регистрация: 07.03.2007

Сообщений: 11,873

22.03.2011, 15:34

2

I_Inquisitor, а разве эта ошибка не говорит о том, что у тебя запроса нет в этом объекте?



0



0 / 0 / 0

Регистрация: 04.03.2011

Сообщений: 25

22.03.2011, 15:39

 [ТС]

3

Цитата
Сообщение от Lord_Voodoo
Посмотреть сообщение

I_Inquisitor, а разве эта ошибка не говорит о том, что у тебя запроса нет в этом объекте?

Запроса там быть не должно, он будет исполняться потом при нажатии кнопки.



0



72 / 64 / 3

Регистрация: 13.05.2010

Сообщений: 349

22.03.2011, 16:40

4

Цитата
Сообщение от I_Inquisitor
Посмотреть сообщение

начинаю создавать столбцы и прикреплять к FieldName

а почему бы тебе просто не выводить данные — результат запроса в DBGrid, без первоначальной его подготовки??



1



0 / 0 / 0

Регистрация: 04.03.2011

Сообщений: 25

22.03.2011, 16:43

 [ТС]

5

Цитата
Сообщение от Ksenya100
Посмотреть сообщение

а почему бы тебе просто не выводить данные — результат запроса в DBGrid, без первоначальной его подготовки??

Не совсем понимаю как это? Не надо настраивать поля? Но мне нужны русские названия столбцов, если не настроить они будут соответствовать названиям полей таблицы БД. Или нет…



0



Ksenya100

72 / 64 / 3

Регистрация: 13.05.2010

Сообщений: 349

22.03.2011, 17:17

6

пишешь запрос

SQL
1
SELECT column1 AS твое_название, column2 AS твое_название_второго_столбца.... WHERE  тут_твои_условия

ну и можно менять местами column’ы….



1



I_Inquisitor

0 / 0 / 0

Регистрация: 04.03.2011

Сообщений: 25

22.03.2011, 17:25

 [ТС]

7

Цитата
Сообщение от Ksenya100
Посмотреть сообщение

пишешь запрос

SQL
1
SELECT column1 AS твое_название, column2 AS твое_название_второго_столбца.... WHERE  тут_твои_условия

ну и можно менять местами column’ы….

Создать грид из двух полей таблицы как-то так?

T-SQL
1
select column1 as ФИО, column1 as Email, CusFIO, CusEmail from tCustomer



0



Ksenya100

72 / 64 / 3

Регистрация: 13.05.2010

Сообщений: 349

22.03.2011, 18:16

8

SQL
1
SELECT CusFIO AS ФИО, CusEmail AS Email FROM tCustomer



1



0 / 0 / 0

Регистрация: 18.02.2010

Сообщений: 37

17.09.2011, 22:09

9

не могу разобраться помогите..
Создаю ADOConnection и подключаюсь к БД Access. Создаю ADOQuery, и в ее свойстве Connection выбираю из списка ADOConnection. Затем создаю DataSource и в свойстве DataSet выбираю ADOQuery. И наконец создаю таблицу DBGrid где выбираю нужный DataSourse. Не могу понять где теперь подключать нужную мне таблицу из БД? В каком объекте и какое это свойство?

А еще направьте где посмотреть как сделать так чтобы БД автоматически находилась из того же каталога где находится и программа.

Добавлено через 13 минут
м.. разобралась как связать. но вопрос — но полю-счетчику группировку при этом выходит делать нельзя?
И вопрос «как сделать так чтобы БД автоматически находилась из того же каталога где находится и программа.» еще актуален.



0



SAMZ

1263 / 706 / 62

Регистрация: 21.12.2009

Сообщений: 2,255

18.09.2011, 06:21

10

В среде Delphi есть такая функция

Delphi
1
GetDir(0,sPath);

,
которая возвращает в строковой переменной sPath полный путь к каталогу, из которого Вы запускаете программу. Если использовать эту функцию, то после

Delphi
1
2
GetDir(0,sPath);
DBName := sPath + '<здесь имя файлы вашей БД>'

то в переменной DBName получите полный путь к БД, при условии, что файл с БД действительно лежит там же где и программа. Если в этом есть сомнения, то лучше

Delphi
1
2
3
4
5
6
  GetDir(0,sPath);
  if FileExists(sPath + '<здесь имя файлы вашей БД>') then begin
    <здесь последовательность операторов, когда файл БД найден>;
  end else begin
   <здесь последовательность операторов, когда файл БД не найден>;
  end;



1



Minyta

0 / 0 / 0

Регистрация: 18.02.2010

Сообщений: 37

18.09.2011, 15:42

11

да бд всегда находится в том же каталоге где и программа.
А в каком событии писать этот программный код? при активизации формы на которой ADOConnection?

вот что получилось:

Delphi
1
2
3
4
5
6
7
procedure TForm1.FormActivate(Sender: TObject);
var sPath: string;
    DBName: string;
begin
  GetDir(0,sPath);
  DBName := sPath + '<bd>'
end;

Как я понимаю DBName это тоже текстовая переменная? Которая теперь хранит путь к БД?
А как теперь сделать чтобы ADOConnection считывал этот путь?



0



0 / 0 / 0

Регистрация: 18.02.2010

Сообщений: 37

22.09.2011, 20:19

12

Подскажите пжс! Очень жду ответа.



0



1263 / 706 / 62

Регистрация: 21.12.2009

Сообщений: 2,255

23.09.2011, 06:30

13

Цитата
Сообщение от Minyta
Посмотреть сообщение

Как я понимаю DBName

DBName — это свойство объекта TpFIBDataBase и оно действительно строковое



1



0 / 0 / 0

Регистрация: 18.02.2010

Сообщений: 37

23.09.2011, 08:17

14

А как его теперь передать ADOConnection для считывания..?



0



deeller

39 / 39 / 4

Регистрация: 20.04.2011

Сообщений: 789

Записей в блоге: 1

23.09.2011, 09:07

15

при создании формы присваивай значение:

Delphi
1
adoconnection.connectionstring:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+ExtractFilePath(Application.ExeName)+'*имя файла базыданных*;Persist Security Info=False'



1



0 / 0 / 0

Регистрация: 18.02.2010

Сообщений: 37

23.09.2011, 09:25

16

deeller, вечером дома попробую. Сейчас я без делфи. Спасибо))
А «при создании формы» в смысле при активизации(TForm1.FormActivate) да?



0



39 / 39 / 4

Регистрация: 20.04.2011

Сообщений: 789

Записей в блоге: 1

23.09.2011, 09:27

17

TForm1.FormCreate



1



0 / 0 / 0

Регистрация: 18.02.2010

Сообщений: 37

23.09.2011, 09:55

18

пасибо. буду пробовать)



0



1496 / 1238 / 244

Регистрация: 04.04.2011

Сообщений: 4,357

23.09.2011, 19:44

19

Но открывать запрос в OnCreate не следует !



0



39 / 39 / 4

Регистрация: 20.04.2011

Сообщений: 789

Записей в блоге: 1

26.09.2011, 09:13

20

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



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

26.09.2011, 09:13

Помогаю со студенческими работами здесь

Нужна помошь с sql запросом в ADOQuery1
Вот через ADOQuery1.sql пишу запрос

как между строками вставить перенос каретки ??
пробывал…

ADOQuery1
Приветствую. Столкнулся с проблемкой, подскажите пожалуйста.
В общем использую код, чтобы создать…

AdoQuery1
Ошибка возникает при сохранении данных &quot;adoQuery:cannot perform this operation on a closed dataset&quot;…

ADOQuery1.SaveToFile() …
Доброго времени суток! Имею БД Access к которой подключаюсь с помощью ADOConnection, далее в…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

20


Форум программистов Vingrad

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

Страницы: (2) Все [1] 2 
( Перейти к первому непрочитанному сообщению )

Поиск:

Ответ в темуСоздание новой темы
Создание опроса
> Помогите с 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 SettingsjulkaÐàáî÷èé ñòîëionka_by_JuikoIonosfera_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   Вверх



















Страницы: (2) Все [1] 2 

Ответ в темуСоздание новой темы
Создание опроса
Правила форума «Delphi: Для новичков»
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

 

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


Проблема с базой данных .mdb в delphi 7

От:

lyonya.ku

 
Дата:  07.12.13 20:26
Оценка:

-2
:)

Всем доброго дня. Помогите мне пожалуйста с delphi 7!
При выполнении процедуры (ниже) выдает ошыбку «ADOQuery1: Missing SQL property».

procedure TForm2.OpenDB(var OpenDlg: TOpenDialog);
var
i, j, newPos, rowscount:integer;
tmp: string;
begin
procedure TGame.OpenDB(var OpenDlg: TOpenDialog);
var
i, j, newPos, rowscount:integer;
tmp: string;
begin
if open = false then
begin
try
OpenDlg.InitialDir := GetCurrentDir() + ‘Data’;
OpenDlg.Execute;
if OpenDlg.FileName <> » then
begin
SelFile := OpenDialog1.FileName;

AdoQuery1.ConnectionString := ‘Provider=Microsoft.Jet.OLEDB.4.0;Data Source=’ + SelFile + ‘;Persist Security Info=False’;
AdoQuery1.Open;

rowscount := AdoQuery1.RecordCount;
setlength(RowsValues, rowscount);

ADOQuery1.Recordset.MoveFirst;
for i:=0 to rowscount do
begin
RowsValues[i] := VarToStr(ADOQuery1.Recordset.Fields[‘Слово’].Value);
ADOQuery1.Recordset.MoveNext;
end;

for j := 0 to high(RowsValues) — 1 do
begin
tmp := RowsValues[j];
newPos := Random(high(RowsValues));
RowsValues[j] := RowsValues[newPos];
RowsValues[newPos] := tmp;
end;

end;
open := true;
AdoQuery1.Close;
except
ShowMessage(‘Ошибка при открытии.’)
end;
end;
end;

Что это такое и как это исправить?

PS: я почти не знаю ничего про SQL и новичек в delphi.


Re: Проблема с базой данных .mdb в delphi 7

От:

LuciferArh

Россия

 
Дата:  09.12.13 07:47
Оценка:

1 (1)

Здравствуйте, lyonya.ku, Вы писали:

LK>Что это такое и как это исправить?

Вестимо как: хоть что-то почитать про SQL и Delphi. RTFM, как говорится…

LK>PS: я почти не знаю ничего про SQL и новичек в delphi.

Ага… Сессия, запары… Да все понятно. Но вот как же поубивать хочется таких вот «программистов», чтоб не отсвечивали… И не позорили КАСТУ.

http://nick-name.ru/img.php?nick=LuciferArh&sert=2]


Re: Проблема с базой данных .mdb в delphi 7

От:

DarkMaster

Украина

http://www.bdslib.at.ua
Дата:  09.12.13 08:53
Оценка:

Здравствуйте, lyonya.ku, Вы писали:

LK>При выполнении процедуры (ниже) выдает ошыбку «ADOQuery1: Missing SQL property».

ADOQuery1.SQL.Text:='SELECT СПИСОК_ПОЛЕЙ FROM ИМЯ_ТАБЛИЦЫ';

перед ADOQuery1.Open…

WBR, Dmitry Beloshistov AKA [-=BDS=-]


Re[2]: Проблема с базой данных .mdb в delphi 7

От:

LuciferArh

Россия

 
Дата:  09.12.13 13:21
Оценка:

Здравствуйте, DarkMaster, Вы писали:

DM>

DM>ADOQuery1.SQL.Text:='SELECT СПИСОК_ПОЛЕЙ FROM ИМЯ_ТАБЛИЦЫ'; 
DM>


DM>перед ADOQuery1.Open…

Не-а…

[sarcasm]
SELECT Знания FROM Учебник WHERE Армия IS «пока не забрали»
[/sarcasm]

Думаю, это будет более правильный запрос…

http://nick-name.ru/img.php?nick=LuciferArh&sert=2]


Re[3]: Проблема с базой данных .mdb в delphi 7

От:

DarkMaster

Украина

http://www.bdslib.at.ua
Дата:  09.12.13 14:21
Оценка:

Здравствуйте, LuciferArh, Вы писали:

LA>[sarcasm]

LA>SELECT Знания FROM Учебник WHERE Армия IS «пока не забрали»
LA>[/sarcasm]

LA>Думаю, это будет более правильный запрос…

Тяга людей к халяве более сильна, чем к знаниям — это факт. Этот хоть Query использует (обычно с Table начинают ) и что-то попытался сам сделать.

WBR, Dmitry Beloshistov AKA [-=BDS=-]


Re[2]: Проблема с базой данных .mdb в delphi 7

От:

lyonya.ku

 
Дата:  09.12.13 16:52
Оценка:

Здравствуйте, DarkMaster, Вы писали:

DM>Здравствуйте, lyonya.ku, Вы писали:


LK>>При выполнении процедуры (ниже) выдает ошыбку «ADOQuery1: Missing SQL property».

DM>

DM>ADOQuery1.SQL.Text:='SELECT СПИСОК_ПОЛЕЙ FROM ИМЯ_ТАБЛИЦЫ'; 
DM>


DM>перед ADOQuery1.Open…

Спасибо!!!


Re[2]: Проблема с базой данных .mdb в delphi 7

От:

lyonya.ku

 
Дата:  09.12.13 17:05
Оценка:

Здравствуйте, LuciferArh, Вы писали:

LA>Здравствуйте, lyonya.ku, Вы писали:


LK>>Что это такое и как это исправить?


LA>Вестимо как: хоть что-то почитать про SQL и Delphi. RTFM, как говорится…


LK>>PS: я почти не знаю ничего про SQL и новичек в delphi.


LA>Ага… Сессия, запары… Да все понятно. Но вот как же поубивать хочется таких вот «программистов», чтоб не отсвечивали… И не позорили КАСТУ.

Зачем убивать??? Вы сами таким тоже были. Или вы родились уже профи програмистом? Все учатся. Я только 2-й месяц дельфи учу.

А почитать — сделаю. Про дельфи уже читаю.


Re[3]: Проблема с базой данных .mdb в delphi 7

От:

lyonya.ku

 
Дата:  09.12.13 17:08
Оценка:

Здравствуйте, LuciferArh, Вы писали:

LA>Здравствуйте, DarkMaster, Вы писали:


DM>>

DM>>ADOQuery1.SQL.Text:='SELECT СПИСОК_ПОЛЕЙ FROM ИМЯ_ТАБЛИЦЫ'; 
DM>>


DM>>перед ADOQuery1.Open…

LA>Не-а…


LA>[sarcasm]

LA>SELECT Знания FROM Учебник WHERE Армия IS «пока не забрали»
LA>[/sarcasm]

LA>Думаю, это будет более правильный запрос…

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


Re[3]: Проблема с базой данных .mdb в delphi 7

От:

Figaro

Россия

 
Дата:  10.12.13 02:46
Оценка:

Смысл в другом… читай и сразу пробуй… Эт в начале 90-х не было книг и инета, но мы т как то смогли… Иногда благодаря FIDOнету


Re[2]: Проблема с базой данных .mdb в delphi 7

От:

irbis3003

 
Дата:  10.12.13 03:36
Оценка:

Здравствуйте, LuciferArh, Вы писали:

LA>Ага… Сессия, запары… Да все понятно. Но вот как же поубивать хочется таких вот «программистов», чтоб не отсвечивали… И не позорили КАСТУ.

Напомнило

Автор: irbis3003
Дата: 08.06.11


Re[4]: Проблема с базой данных .mdb в delphi 7

От:

LuciferArh

Россия

 
Дата:  10.12.13 09:37
Оценка:

Здравствуйте, Figaro, Вы писали:

F>Смысл в другом… читай и сразу пробуй… Эт в начале 90-х не было книг и инета, но мы т как то смогли… Иногда благодаря FIDOнету

мы зачастую смогли даже не благодаря, а вопреки. Потому что там у них все было немного по-другому. И то, что работало у них там на их железе, не работало у нас без (зачастую тотального) переписывания. Но мы смогли. Я вот дочке своей (она не программист, хвала Аллаху) часто говорю, что ходить в библиотеку и рыться в книгах — это не признак неудачника и лоха. А ведь когда-то у нас не было не то, чтоб FIDO, а и «нормального» компа… Я вот свой первый комп сам собирал — Радио86-РК, если кто помнит.

http://nick-name.ru/img.php?nick=LuciferArh&sert=2]


Re[4]: Проблема с базой данных .mdb в delphi 7

От:

LuciferArh

Россия

 
Дата:  10.12.13 09:39
Оценка:

Здравствуйте, lyonya.ku, Вы писали:

LK>Да, наверное правильный, но он выполняется долго. Мне нужно сначала сделать программу. А потом и этот запрос выполню

Да ну… Год — это недолго. А потом либо программа потеряет свою актуальность, либо ты останешься на сверхсрочную.

http://nick-name.ru/img.php?nick=LuciferArh&sert=2]

Подождите ...

Wait...

  • Переместить
  • Удалить
  • Выделить ветку

Пока на собственное сообщение не было ответов, его можно удалить.

    msm.ru

    Нравится ресурс?

    Помоги проекту!

    >
    Добавление и изменение данных в
    , таблицах

    • Подписаться на тему
    • Сообщить другу
    • Скачать/распечатать тему

    Anatoly Podgoretsky



    Сообщ.
    #32

    ,
    23.07.06, 08:40

      Цитата кент @ 18.07.06, 07:03

      Цитата Anatoly Podgoretsky @ 17.07.06, 19:06

      Ошибка «Undeclared identifier:» означает, что ты не включил в uses нужные модули

      и это оказалось был DB >:(

      Молодец, такие вопросы ты должен разрешать сам с помощью справка, как правило нужный модуль в ней указан и в крайнем случае поиском по исходникам.


      Expected }



      Сообщ.
      #33

      ,
      14.02.10, 17:16

        Junior

        *

        Рейтинг (т): нет

        Выполняется поиск по БД посредством фильтрования AdoTable:

        ExpandedWrap disabled

          ADOTable1.Filter := ‘Фамилия=’+QuotedStr(Edit1.Text);

          ADOTable1.Filtered:= True;

        А затем, при редактировании полей:

        ExpandedWrap disabled

          ADOTable1.Edit;

          ADOTable1.FieldByName(‘Фамилия’).AsString:=DBEdit1.Text;

          ADOTable1.post

        Возникает ошибка:
        «BOF или EOF имеет значение True, либо текущая запись удалена. Для выполнения операции требуется текущая запись.»

        В чём дело? И как избавиться от ошибки?


        VahaC



        Сообщ.
        #34

        ,
        14.02.10, 20:13

          Выбрось ADOTable на свалку, а вместо него используй ADOQuery.


          Expected }



          Сообщ.
          #35

          ,
          14.02.10, 20:43

            Junior

            *

            Рейтинг (т): нет

            С AdoQuery не работает поиск, и при редактировании опять ошибка, но уже другая:
            «AdoQuery1: Cannot perform this operation on a closed dataset»


            VahaC



            Сообщ.
            #36

            ,
            14.02.10, 21:36

              Цитата Expected } @ 14.02.10, 20:43

              С AdoQuery не работает поиск

              то есть?

              Цитата Expected } @ 14.02.10, 20:43

              «AdoQuery1: Cannot perform this operation on a closed dataset»

              а перед выполнение операции проверяли AdoQuery1.Active = true ?


              Expected }



              Сообщ.
              #37

              ,
              14.02.10, 22:10

                Junior

                *

                Рейтинг (т): нет

                Цитата

                а перед выполнение операции проверяли AdoQuery1.Active = true ?

                Появляется сообщение «Missing SQL property»


                Павел Калугин



                Сообщ.
                #38

                ,
                15.02.10, 07:13

                  Expected } а запрос заполнили? свойство SQL. Или компутер сам должен догадатся какой запрос надо выполнять?


                  Expected }



                  Сообщ.
                  #39

                  ,
                  15.02.10, 07:32

                    Junior

                    *

                    Рейтинг (т): нет

                    А что там должно быть указано?


                    Павел Калугин



                    Сообщ.
                    #40

                    ,
                    15.02.10, 07:54

                      Запрос для получения данных. Читать что такое SQL и в частности про SELECT, INSERT, UPDATE, DELETE. Так же смотреть сюда Базы данных с нуля

                      Сообщение отредактировано: Paul_K — 15.02.10, 07:54


                      Gonarh



                      Сообщ.
                      #41

                      ,
                      15.02.10, 10:41

                        Хочю еще раз повторить, чтобы человек не наделал ошибок в будущем:
                        ADOTable выкинь, используй SQL запросы.
                        Такой же совет сам получил лет 5 назад, кады начинал постигать азы работы с БД :)


                        VahaC



                        Сообщ.
                        #42

                        ,
                        15.02.10, 18:54

                          Цитата Expected } @ 14.02.10, 22:10

                          Появляется сообщение «Missing SQL property»

                          напиши так

                          ExpandedWrap disabled

                            AdoQuery1.SQL.Clear;

                            AdoQuery1.SQL.Add(‘Select * from твоя_таблица where поле=занчение’);

                            AdoQuery1.Active := true;

                          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)

                          0 пользователей:

                          • Предыдущая тема
                          • Delphi: Базы данных
                          • Следующая тема

                          Рейтинг@Mail.ru

                          [ Script execution time: 0,0564 ]   [ 16 queries used ]   [ Generated: 4.06.23, 04:11 GMT ]  

                          Понравилась статья? Поделить с друзьями:
                        • Missing schema folder revit ошибка
                        • Missing right parenthesis oracle ошибка
                        • Missing required file dead by daylight ошибка
                        • Missing pulse привод паркер ошибка
                        • Missing model statement microcap ошибка