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

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.01.2009, 23:16   #1
PUSHkiN
Пользователь
 
Регистрация: 12.06.2008
Сообщений: 43
Смущение Делфи выдаёт ошибочку, мот кто знает что это такое)))

у меня есть база, и там поле tip_usl со значениями Ведущие и т.д. Связьсделана с помощью ADOConnection... когда я вветку дерева пытаюсь что нить вставить, то ошибка такая:
"Project MyProject.exe raised exception class EOleException with message 'Параметр Ведущие не имеет значения по умолчанию'. Process stopped. Use Step or Run to continue."
В Хелпе ничего нормального не написано, а так не могу расковырять и понять что с ним)) помогите плиз разобраться...
PUSHkiN вне форума Ответить с цитированием
Старый 28.01.2009, 23:18   #2
maladoy
delphi-ст!
Форумчанин
 
Аватар для maladoy
 
Регистрация: 02.01.2009
Сообщений: 825
По умолчанию

'Параметр Ведущие не имеет значения по умолчанию
вам же делфи все рассказала !!!! она умная!!!
а так бы на код запроса глянуть которым вы данные вытаскиваете???
вступлю в команду разработчиков ПО на Delphi
maladoy вне форума Ответить с цитированием
Старый 28.01.2009, 23:25   #3
PUSHkiN
Пользователь
 
Регистрация: 12.06.2008
Сообщений: 43
По умолчанию

procedure Tusers.FormCreate(Sender: TObject);
procedure readTree();
begin
Tree.Items.Clear;
for j:=1 to 100 do
begin
nod[j].name:='';
nod[j].node:=NIL;
end;
//создаём ветки
dtm.Query.Active:=false;
dtm.Query.SQL.Clear;
dtm.query.SQL.Add('select *');
dtm.query.SQL.add('from tip_usl;');
dtm.query.Active:=true;
dtm.Query.First;
i:=0;
while not(dtm.query.Eof) do
begin

i:=i+1;
nod[i].name:=dtm.Query.FieldByName('tip_u sl').AsString;
nod[i].node:=Tree.Items.add(NIL,nod[i].name);
dtm.Query.Next;
end;
//в ветки добавляем под-ветки
for j:=1 to i do
begin
dtm.query.Active:=false; //а проблема где-то ниже
dtm.Query.SQL.Clear;
dtm.query.SQL.Add('select nazv_usl');
dtm.query.SQL.add('from uslugi');
dtm.query.SQL.add('where (tip_usl='+nod[j].name+');');
dtm.query.Active:=true;
dtm.Query.First;
while not(dtm.query.Eof) do
begin
s:=dtm.Query.FieldByName('nazv_usl' ).AsString;
Tree.Items.AddChild(nod[j].node,s);
dtm.Query.Next;
end;
end;
dtm.Query.Active:=false;
end;
begin

tree.Items.Clear;
readTree();
end;


ну как бы вот так я пытаюсь в Дерево базу вывести ))))

// это описание массива для простоты..
nodes=record
name:string;
node:TTreeNode;
end;
var
nod: array [1..100] of nodes;
PUSHkiN вне форума Ответить с цитированием
Старый 28.01.2009, 23:28   #4
maladoy
delphi-ст!
Форумчанин
 
Аватар для maladoy
 
Регистрация: 02.01.2009
Сообщений: 825
По умолчанию

Код:
dtm.query.SQL.add('from tip_usl');
//после tip_usl точка с запятой не нужна!!!
и как вы из поля данные вытаскиваете????
ведь tip_usl это поле насколько я понял???? а таблица то как называется????
вступлю в команду разработчиков ПО на Delphi

Последний раз редактировалось maladoy; 28.01.2009 в 23:30.
maladoy вне форума Ответить с цитированием
Старый 28.01.2009, 23:32   #5
PUSHkiN
Пользователь
 
Регистрация: 12.06.2008
Сообщений: 43
По умолчанию

Цитата:
Сообщение от maladoy Посмотреть сообщение
Код:
dtm.query.SQL.add('from tip_usl');
//после tip_usl точка с запятой не нужна!!!
так в том месте всё работает.. и точку с запятой можно ставить а можно и нет... тут проблема ниже... а где незнаю...

P.S. даже проверил без точки с запятой...
PUSHkiN вне форума Ответить с цитированием
Старый 28.01.2009, 23:37   #6
maladoy
delphi-ст!
Форумчанин
 
Аватар для maladoy
 
Регистрация: 02.01.2009
Сообщений: 825
По умолчанию

вместо
Код:
dtm.query.SQL.Add('select *');
dtm.query.SQL.add('from tip_usl;');
вставьте
Код:
dtm.query.SQL.Add('select  tip_usl from tab');
где таб - название вашей таблицы с полем тип_усл
и вот тут
Код:
dtm.query.SQL.add('where (tip_usl='+nod[j].name+');');
значение nod[j].name должно передаваться в апострофах
т.е
Код:
dtm.query.SQL.add('where (tip_usl='+''''+nod[j].name+''''+');');
вступлю в команду разработчиков ПО на Delphi

Последний раз редактировалось maladoy; 28.01.2009 в 23:40.
maladoy вне форума Ответить с цитированием
Старый 28.01.2009, 23:41   #7
PUSHkiN
Пользователь
 
Регистрация: 12.06.2008
Сообщений: 43
По умолчанию

да это тоже пробовал.. мне просто так удобнее... этот кусок процедуры работает отменно (всё что надо делает), а вот вот этот:
dtm.query.Active:=false;
dtm.Query.SQL.Clear;
dtm.query.SQL.Add('select nazv_usl'); // это тоже всё работает...
dtm.query.SQL.add('from uslugi'); // т.е. запрос просерял непосредственно в самой базе
dtm.query.SQL.add('where (tip_usl='+nod[j].name+');'); // так что тут что-то так
dtm.query.Active:=true;
dtm.Query.First; // ВОТ ТУТ ОСТАНАВЛИВАЕТСЯ ПРОГРАММА
while not(dtm.query.Eof) do
begin
s:=dtm.Query.FieldByName('nazv_usl' ).AsString;
Tree.Items.AddChild(nod[j].node,s);
dtm.Query.Next;
end;
PUSHkiN вне форума Ответить с цитированием
Старый 28.01.2009, 23:44   #8
maladoy
delphi-ст!
Форумчанин
 
Аватар для maladoy
 
Регистрация: 02.01.2009
Сообщений: 825
По умолчанию

значение nod[j].name должно передаваться в апострофах
т.е

Код:

Код:
dtm.query.SQL.add('where (tip_usl='+''''+nod[j].name+''''+');');
вступлю в команду разработчиков ПО на Delphi
maladoy вне форума Ответить с цитированием
Старый 28.01.2009, 23:49   #9
PUSHkiN
Пользователь
 
Регистрация: 12.06.2008
Сообщений: 43
По умолчанию

Цитата:
Сообщение от maladoy Посмотреть сообщение
значение nod[j].name должно передаваться в апострофах
да ты ГЕНИЙ... а я дурень забыл.... спасибо огромное... лови моё признание))))) теперь курсач будет сделан!!!
PUSHkiN вне форума Ответить с цитированием
Старый 28.01.2009, 23:51   #10
maladoy
delphi-ст!
Форумчанин
 
Аватар для maladoy
 
Регистрация: 02.01.2009
Сообщений: 825
По умолчанию

удачи!!!!!!!!!!!!
вступлю в команду разработчиков ПО на Delphi
maladoy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сеть терминалов. Что это такое? Stilet Компьютерное железо 2 29.08.2008 16:07
кто нить это знает или нет ?! SALEM БД в Delphi 1 24.11.2006 16:32