![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Пытаюсь добавить поля в Query, а мне выдаёт ошибку "ADOQuery1: Missing SQL property". Connection у меня один, Data Source тоже ,тот от куда строки брать.... Помогите. Это ошибка запроса, но какого?
![]() |
#2
|
|||
|
|||
![]() покажи текст из adoquery->sql
|
#3
|
|||
|
|||
![]() Там нет текста, как правильно записать умножение ячеек, таблица в DBGride, вот название ячеек: Цена_ед_товара, Количество, и показать результат нужно в Стоимость.
|
#4
|
|||
|
|||
![]() попытался сделать так, но не компилируется.
Undeclared indentifier 'DBGrid2' begin for i:=1 to DBGrid2.RowCount-1 do DBGrid2.Cells[8,i]:IntToStr(StrToInt(DBGrid2.Cells[6,i]) *StrToInt(DBGrid2.Cells[7,i])) end; |
#5
|
|||
|
|||
![]() в запросе умножай.
чтото вроде select Цена_ед_товара, Количество, (Цена_ед_товара * Количество) as Сумма FROM Товары |
#6
|
|||
|
|||
![]() Написал запрос, добавил поля в Query, вот такой код получился, но опять ошибка...
procedure TForm1.ADOQuery1CalcFields(DataSet: TTovar); begin ADOQuery1Sum.AsInteger:=ADOQuery1Values.AsInteger*ADOQuery1Count.AsInteger; end; |
#7
|
||||
|
||||
![]() Если именно так код записан, то ошибки будут, он должен быть такой
Код:
procedure TForm1.ADOQuery1CalcFields(DataSet: TTovar); begin ADOQuery1.Sum.AsInteger:= ADOQuery1.Values.AsInteger * ADOQuery1.Count.AsInteger; end; З.Ы. Что-то не нахожу у ADOQuery1 ни Sum, ни Values, ни Count. Что-то здесь не так, откуда эти свойства? Я не понял Вашего вопроса, но всё же Вам на него отвечу! Последний раз редактировалось Alegun, 11.05.2013 в 20:57. |
#8
|
|||
|
|||
![]() было скопировано отсюда http://devdelphi.ru/?p=1229
|
#9
|
|||
|
|||
![]() Всё равно, ошибка на Undeclared indentifier 'ADOQuery1.CalcFields'
|
#10
|
|||
|
|||
![]() Цитата:
А зачем так сложно? Что, прямо в запросе перемножить нельзя? Код:
SELECT *, Count*Price As Total From Table; |
#11
|
|||
|
|||
![]() Запрос записан, но в таблицу вычисляемое значение не заносится
|
#12
|
|||
|
|||
![]() Цитата:
Дык у тебя небось колонки созданы либо в гриде, либо в запросе. соответсвенно, надо либо добавить нужную колонку, либо удалить все, что бы создавалист автоматически. |
#13
|
|||
|
|||
![]() Нет, колонки в таблице Access ещё созданы были, а колонка Стоимость пустая.
|
#14
|
||||
|
||||
![]() Не могли бы вы выложить здесь или на zalil.ru файл *.mdb для экспериментов, а то мне нечем его в данный момент создать, а научиться работе с запросами хочется, появился к этому интерес.
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#15
|
||||
|
||||
![]() MDB можно создать самому через ADOX.
Примерно это выглядит так: Код:
Uses Variants,ComObj; Var Mdb,Tbl,Idx: Variant; NameDB,PathDB: String; begin NameDB := ExtractFileName(dbName); PathDB := ExtractFilePath(Application.ExeName); AppDB.ConnectionString := Format('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s',[PathDB+NameDB]); Mdb := CreateOleObject('ADOX.Catalog'); Mdb.Create(AppDB.ConnectionString); Tbl := CreateOleObject('ADOX.Table'); Tbl.Name := 'Test'; Tbl.ParentCatalog := Mdb; Tbl.Columns.Append('IntField', adInteger); Tbl.Columns.Append('TextField', adVarWChar, 50); Mdb.Tables.Append(Tbl); Idx := CreateOleObject('ADOX.Key'); Idx.Name := 'PK_Index'; Idx.Type := adKeyPrimary; Idx.Columns.Append('IntField'); Mdb.Tables[Tbl.Name].Keys.Append(Idx); end; Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. Последний раз редактировалось Страдалецъ, 12.05.2013 в 11:46. |