• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Createoleobject('access.application')

  • Автор темы Dixich
  • Дата начала
D

Dixich

Скажите что это:
while not Eof do begin FieldByName('Наименование').AsString; Next; end;
зачем оно, для чего тут написано итд?.
Все целиком цикл до конца таблицы.
FieldByName('Наименование').AsString;{Обращение к полю "Наименования" текущей строки, информацию взять как строку, понятно что мы в данном коде просто так пробегаем по таблице ничего не делая, но я хотел показать, что не сижу на месте и пытаюсь что то делать, не жду как некоторые студенты, пока мне код на блюдечке принесут, у меня просто нет времени на это, программа на самом деле пустяковая, и даже такое кривое обращение с базой вполне мне подходит, мне только и нужно считать переменные в какой нить массив, как обратиться к полям таблицы я и написал тут. И я пытаюсь как то улучшить этот код, точнее узнать как это сделать, чтобы не лезть в делфи каждый раз как в базе добавят новую таблицу}
Next;// следующая строка
 
D

Dixich

{Понятно, что можно сделать интерфейс в котором нужно будет указывать имя таблицы, с которой будет работать пользователь, но если таблиц слишком много, а действия там выполняются одни и те же то это как то не подходит}
 
E

etc

Такие действия бывают только либо у "справочников" (таблицы, содержащие справочную инфу) в реальной жизни, но их как правило не более 10% на базу, либо в такой базе которая никому не нужна.
Если это справочники, то там можно действительно сделать одинаковый механизм. Однако, повторю, оно в реалиях практически не имеет смысла. Овчинка выделкилибо не стоит либо выйгрыш мизерный.
А если база никому не нужна, то не нет смысла содрагать воздух.

Либо это очень специфическая система. Они есть но мало мало.
 
T

Titan

Dixich
Что Вы зациклились на TADOTable. Есть еще TADOQuery, решит Вам кучу проблем.
Без имен таблиц не обойтись. Неужели так страшно писать имена таблиц.
в общем TADOQuery + SQL вам помогут.
 
D

Dixich

Dixich
Что Вы зациклились на TADOTable. Есть еще TADOQuery, решит Вам кучу проблем.
Без имен таблиц не обойтись. Неужели так страшно писать имена таблиц.
в общем TADOQuery + SQL вам помогут.

Тогда мне жаль программеров, которым приходится работать с 100 и более таблиц... Если это так, то буду создавать какой нить интерфейс под все это. Спасибо!!! С этим куском программы больше проблем не должно быть, хотя нет, проблема с русскими названиями таблиц, некоторые, к примеру Азов, Ростов-на-Дону (это название таблиц) проходят, но какой нить Новочеркасск не проходит... Конечно проблема решается транслитизацией, но с русскими буквами любому русскому пользователю удобней работать.
 
E

etc

Тогда мне жаль программеров, которым приходится работать с 100 и более таблиц...
Вы какойто странный, а вам не жаль что строители, к примеру, постоянно начинают стоительство с фундамента? пусть бы нафигачили сразу 1 этаж вместе с фундаментом, или ваще его выкинули, и быстро и удобно ...
Только смею вас заверить, в таких домах никто не будет жить, так и тут надо значит надо. Уже много копий было наломано и много всяких "универсальных" штук понаделано, но все также продолжают писать таблицы ...

Еще раз - программирование оно не для вас, тут работать надо!
проблема с русскими названиями таблиц
... русскому пользователю удобней работать
Зачем пользователю работать с названиями таблиц? Зачем оно ему? У пользователя и других прблем хватает, чтобы его заморачивать на долбаные названия таблиц.
 
D

Dixich

Да с чего вы вообще взяли что программирование не для меня? Сложилось впечатление что я ленивый, не люблю работать? Чтож, бывает, это ваше мнение. Разубеждать в этом кого либо не собираюсь
 
D

Dixich

Titan
Огромное спасибо, 1 постом вы все поставили на место. Я серьезно, и это не ирония. Теперь найти способ, чтобы считать инфу с экселя побыстрее, а то 50000 строк считывает по тому способу, которым я пользуюсь, довольно долго, и программа работает. Она уже работает, но медленно. Но это уже сам. Еще раз, Titan, спасибо!

etc я рад критике, но не такой, "да ты вообще тупой и нечего тебе тут делать!", все что Вы писали прочитать можно было только так. Необоснованную критику, пожалуйста, оставляйте при себе. Вы меня не знаете и не Вам судить что для меня, а что нет. Да и можно подумать Вы не совершали ошибки на начальном этапе становления программистом! По тому, как Вы отвечаете, можно тоже составить психологическую картину, и поверьте она не такая уж хорошая. Но ведь я вас не оскорбляю!

Вопрос решен, можно закрыть тему...
 
T

Titan

Dixich
В догонку...

Помимо работы через OLE , конечно, можно работать с Excel и по другому.
К сожалению, оперировать тысячами строк в Excel не приходилось. Есть компоненты в сети , которые позволяют работать с файлами Excel при неустановленном самом Excel на компьютере. К сожалению, практически все такие компоненты платные. Однако мне как-то удалось найти бесплатный (года 2-3 назад), но пришлось его еще дорабатывать. Работал хорошо. Но про скорость работы не скажу.

На etc не обижайтесь. Я уверен он не хотел Вас обидеть. Просто в последнее время (конец учебного года, практика), куча студентов здесь создают посты типа - 'напишите мне программу, пожалуйста' , при этом признаков мозговой деятельности никакой. Это порой напрягает.

Удачи ;)
 
E

etc

"да ты вообще тупой и нечего тебе тут делать!", все что Вы писали прочитать можно было только так
Жаль, что вы и это не поняли ... я нигде не сказал про ваши умственные способности, даже не делал намека, а вот про то что надо работать, это да.
Так что вы читали, но не думали над прочитанным, бывает.
Да и можно подумать Вы не совершали ошибки на начальном этапе становления программистом!
Нет. Никогда не говорил, про ту или иную технолигию, не узнав ее, досканально (подчеркиваю) что это "бред", собственно и не помню что б хоть раз такое было. Ошибки были технического характера, без них никак.
По тому, как Вы отвечаете, можно тоже составить психологическую картину, и поверьте она не такая уж хорошая. Но ведь я вас не оскорбляю!
Мне ваще фиолетово кто и как обо мне тут думает. Да и я вас не оскорблял, где нашли оскорбления?
 
D

Dixich

Titan
Спасибо, пороемся. Буду стараться не производить впечатления ленивого человека :)

Для etc
Перечитал всю тему, Вы правы, Вас я не понимаю, как и Вы меня. Это печально.
Если все же интересно, о "Бред" я писал не на всю систему целиком, а на свои мысли которые выразил до того, ибо считал их ошибочными. По поводу того, что Вы все изучаете досконально, рад за Вас. Изучать информацию по книгам проще, если есть тот, кто направит в нужное русло и откинет лишнее, иначе не было бы смысла в учебных институтах. Выражая свои мысли и тут же давая собственную оценку своим мыслям, человек ожидает подтверждение или отрицание этой точки зрения или же возгласа "да ты вообще не там копаешь, почитай лучше об этом!", что и написал Titan. Действительно помогло. Но человек явно не ждет "программирование оно не для вас, тут работать надо!". Понятное дело что любой человек хочет чтобы ему написали, вот так откроешь файл, вот так читать информацию с него, все. Мне больше ничего и не нужно было. Все остальное написал бы сам, я предполагал что напишут всего пару функции и на этом тема закроется.
Не думаю что и сейчас меня поймете...
А вообще это пошел уже откровенный флуд не по теме. Продолжим уже в ЛС, если хотите.
 
T

Titan

Вот чего я не пойму, так это почему Вам так нравится OLE :D
Конечно, это универсальный механизм, но за этот универсализм приходится платить. Платить скоростью работы. Как я понимаю при Ваших объемах строк, работать с базой через OLE никак нельзя.
Заведите себе связку TADOConnection + TADOQuery. И работайте с базой через них. Это будет намного быстрее... и красивее.
ну например:

Код:
 const
tblTable = 'Table1';
.....
begin
....
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('SELECT * ');
SQL.Add('FROM ');
SQL.Add(tblTable);

Open;
end;

....
end;

код , конечно, простейший, но даже он показывает насколько использовать именно ADO ,а не OLE. И , главное для Вас, все будет быстрее работать.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!