![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как работать с БД не используя VCL? [D7, dBase, FoxPro]
B@BY © (2005-10-11 14:20:00)Не обходимо работать с БД(mdb, dfb и IB) без использования VCL, так как у меня нет формы вообще. Как это сделать?
Делаю так:
uses ADODB,...
function Work(sql:string):integer;
var
db1:TADOQuery;
begin
//sql:='select id from spiski ORDER BY ID DESC';
db1.Active:=False;
db1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=D:\Baze.mdb';
db1.SQL.Text:=sql;
db1.Active:=True;
Results:=db1.RecordCount;
end;
После вызова этой функции выдается ошибка: "Access violation..." и останавливается на строчке Results:=.
Dioman (2005-10-11 21:34:00) [1]Удалено модератором
Примечание: Предлагаешь быть повежливее, начни с себя
Игорь Шевченко (2005-10-11 18:20:00) [2]Sergey_Masloff (11.10.05 15:03) [12]
> Все что наследуется от TObject является полноценным членом
> VCL.
Не обязательно. Еще может являться полноценным членом RTL :)
msguns (2005-10-11 17:50:00) [3]А решение-то вот оно ! Открываем папочку C:\Program Files\Borland\DelphiXX\Source,
тупо смотрим ее содержимое и, обнаружив "скрыньку" с именем Vcl, заглядывает туды.. И что же мы видим.. Много всяких интересных файликов.. со смешными именами. Среди которых и ADODB, и DB, и IBXXX, и много еще чаво..
Т.е. по логике Борланда, компоновавшего свои библиотеки, классы доступа к БД относятся к Vcl ;)
Других причин "прописать" TADOQuery к той либо иной библиотекевроде не видно. Если, конечно, проигнорировать способность работы компиллятора Паскаль с объектами и классами вне зависимости от того, где находятся их коды-источники.
app (2005-10-11 17:33:00) [4]Не ругайтейсь, смысла нет и не тот повод.
Fay (2005-10-11 17:07:00) [5]2 Desdechado © (11.10.05 15:59) [25]
>> родилось задолго до VCL
Нельзя ли узнать когда/насколько_задолго ?
Desdechado (2005-10-11 15:59:00) [6]> Вы упорствуете в ереси
С религиозными фанатиками смысла спорить не вижу. Очевидные вещи их не убеждают, а только доказывают непознаваемость мира Борланд. Если указанные мне имена пророков призваны доказать, что мои изделия ООП - часть VCL, то эффект достигнут обратный. Пророки просто эксплуатируют модное слово.
Для аналогии: приложение (application) и прикладная программа (application program) - разные вещи. Вот только границы размылись, и большинство употребляет первый термин в смысле второго, а второй забыли.
Рекомендую вернуться к истокам. И к пониманию, что TMyObject=class эквивалентно TMyObject=class(TObject). Что, по сути, родилось задолго до VCL и не отождествлялось с ним НИКОГДА.
За сим прощаюсь.
Sergey_Masloff (2005-10-11 15:42:00) [7]А вообще мне по фиг, считайте как хотите.
Sergey_Masloff (2005-10-11 15:37:00) [8]Dioman © (11.10.05 15:27) [21]
Читаем Sergey_Masloff (11.10.05 15:36) [22] ,
проникаемся и больше не позоримся ;-)
Sergey_Masloff (2005-10-11 15:36:00) [9]Desdechado © (11.10.05 15:06) [14]
>> Все что наследуется от TObject является полноценным членом VCL
>Надо же, не знал, что мой класс TMyClass=class(TObject) является членом >VCL.
Вы упорствуете в ереси. Ладно, самому прочитать документацию было недосуг или проблемы с английским или еще что. Но зачем упорствовать когда Вас поправили?
Почему TurboPower, Raise, Polaris, те же DevRace понимают что наследясь от TObject они расширяют (создают ПОДмножество) VCL и так и позиционируют свои (часто никакого отношения к визуальности) компоненты и классы позиционируют, а вы вдруг решили что ваш TMyClass=class(TObject) вдруг не VCL?
Не ведите себя как ребенок, ну правда же смешно. Откройте Developer's Guide и прочтите главу 3 (благо она 4 странички всего). Откроете много нового ;-)
Dioman (2005-10-11 15:27:00) [10]
> Все что наследуется от TObject является полноценным членом
> VCL
чушь.
ВЦЛ все то что нарисовал борланд и назвал это частью ВЦЛ.
Ничего более конкретного тут не придумаешь
Os (2005-10-11 15:19:00) [11]db1:= TADOQuery.Create(nil)
Правда сам через nil никогда не пробывал.
Desdechado (2005-10-11 15:17:00) [12]обрати внимание на Rule © (11.10.05 14:32) [2]
результат пишется в Result, а не Results
B@BY (2005-10-11 15:17:00) [13]Спасибо всем за советы.
Но чего то я ни чего не понимаю...(так как все равно ни чего не реботает). Придется вечером книгу читать...(как правильно создать экземпляр db1... :(( ).
Desdechado (2005-10-11 15:12:00) [14]сейчас-то какая ошибка?
текст обновленной функции в студию
B@BY (2005-10-11 15:09:00) [15]Попробовал db1.Create(nil);и db1.Create(Application);все равно выдается ошибка в последней строке, где присваивается значение функции
Results:=db1.RecordCount;
Sergey_Masloff (2005-10-11 15:07:00) [16]Desdechado © (11.10.05 15:03) [13]
Господи, вы в документацию заглянете или нет?
Не воспринимайте за наезд но вы в данном конкретном случае неправы.
Desdechado (2005-10-11 15:06:00) [17]> Все что наследуется от TObject является полноценным членом VCL
Надо же, не знал, что мой класс TMyClass=class(TObject) является членом VCL. Бабушке своей расскажете, как Борланд простым наследованием от TObject включает в свой VCL чужие компоненты и не платит за это денег.
Desdechado (2005-10-11 15:03:00) [18]вот только тогда потянется Forms и прочее, что уже является VCL
Sergey_Masloff (2005-10-11 15:03:00) [19]Desdechado © (11.10.05 14:59) [9]
Бабушке своей расскажете. А пока загляните в справку и убедитесь что хотя VCL действительно переводится как библиотека визуальных компонентов, невизуальные компоненты входят в нее точно также. Таким образом, у меня понятие VCL ассоциируется ровно с тем чем она является и чем ее считает сам производитель. Все что наследуется от TObject является полноценным членом VCL.
Desdechado (2005-10-11 15:02:00) [20]можно, кстати, и Application указать