![]() |
|
![]() ![]() ![]() |
|
Dayana |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 352 Регистрация: 6.10.2002 Где: Тель-Авив Репутация: 1 Всего: 4 |
Есть TQuery. Как узнать номер активной на данный момент строки запроса? Т.е. номер строки, где сейчас стоит указатель запроса?
|
|||
|
||||
x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 1 Всего: 22 |
никак. может быть в каких-то субд есть специально заточенные под это средства, в чём я сомневаюсь, но по идее - никак. в лучшем случае можно определить порядковый номер записи, отображаемый в гриде, можно, добраться до номера записи (индекса), под которым она храниться в буфере TDataSet, но что касается физического порядка хранения записей на сервере - мне кажется, это вообще чёрный ящик. переформулируйте задачу. может стоит клать нумерацию ручками в поле таблицы и потом просто просматривать это поле?
-------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 1 Всего: 22 |
я правльно понимаю, что под запросом имеется в виду результирующий набор данных, а под указателем - текущая запись?
-------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
Dayana |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 352 Регистрация: 6.10.2002 Где: Тель-Авив Репутация: 1 Всего: 4 |
Мне именно и нужен порядковый номер текущей записи в результирующем наборе данных... мне не нужен физический порядок на сервере...
|
|||
|
||||
pigas |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 29.4.2003 Репутация: нет Всего: нет |
это с-во recno:integer /
|
|||
|
||||
pigas |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 29.4.2003 Репутация: нет Всего: нет |
или в этом духе
|
|||
|
||||
pigas |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 29.4.2003 Репутация: нет Всего: нет |
ок
|
|||
|
||||
x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 1 Всего: 22 |
это я и имел в виду - RecNo. но вот вчера попробовал... пакость, однако, получается, господа.
RecNo - это действительно номер записи, на которой стоит курсор (DBI - курсор, не квери и тем более не грида!) но квери начитывает записи по несольку штук в буфер. в итоге значение RecNo скачет безобразным образом: открыли квери - 1, пролистали страницу - 10, ещё страницу - 20 и т.д. и самое обидное, что он прав - текущая физическая запись такая и есть. но мы то видим запись из буфера ![]() ![]() так что если кто-то мне объяснит, как дорваться до номера записи в кэше bde - с меня пиво ![]() -------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: нет Всего: 112 |
Что за тип ? -------------------- С уважением, г-н Посол. |
|||
|
||||
x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 1 Всего: 22 |
DbTables.pas
с буфером bde работает именно через этот тип. -------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
Cashey |
|
|||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: нет Всего: 60 |
x77, не понимаю о чем ты. Св-во RecNo возвращаетномер записи не зависимо от того в квери оно или в тэйбдле. И в квери оно вернет номер текущей записи резулбтирующего набора данных, что кажется и требуется. И кэш здесь сам по себе не причем.
-------------------- библия учит любить ближнего, а камасутра обучает как именно |
|||
|
||||
p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: нет Всего: 112 |
Думаю также, как и Cashey...
Сделал table, query, вывел запрос в грид. RecNo всегда показывает ту запись, которая выбрана в гриде. Если просто в цикле делать next или менять RecNo, тоже нормально всё. Я не понял, что имел в виду x77 тут:
где видим и что ? -------------------- С уважением, г-н Посол. |
|||
|
||||
x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 1 Всего: 22 |
у меня он не является номером текущей записи. сначала равен одному. листаю грид. спустя сколько-то там строк становится равным десяти. дохожу до конца грида. делаю вставку. -1. отменяю вставку - 28. т.е. он меняется скачкообразно, по мере того, как квери начитывает данные из таблицы в буфер. и становится равным номеру последней, начитанной в буфер записи. что это за фигня - я пока не знаю, сейчас эксперементировать - времени нет, вечером разберусь и отвечу.
з.ы. я тоже, почему-то, был уверен, что recno всегда возвращает номер текущей записи в результирующем НД. однако вот. -------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 1 Всего: 22 |
кажется, есть. на *.db, *.dbf всё так, как полагается - в RecNo живёт номер текущей записи. а вот на Ib - полная фигня.
чушь это, конечно, работать с Ib через BDE, но тем не менее. -------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
Dayana |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 352 Регистрация: 6.10.2002 Где: Тель-Авив Репутация: 1 Всего: 4 |
Вот и я о том же... пробовала через RecNo... обрабатываю на событие OnCalcFields (или почти так называется), считываю RecNo, а он мне -1 всегда возвращает. Думаю, RecNo содержит номер выделеной строки на db гриде. А OnCalcFields с выделением строки в db гриде не связано.
Задача у меня такая. В db гриде надо вывести колонку с нумерацией всех строк. Я подумала, что самое простое это завести поле в TQuery, которое калькулейтит, и в OnCalcFields заносить туда номер текущей записи. Оказалось проблема с номером текущей записи. Но, и по-другому, как пересчитать строки я до сих пор не знаю. Ведь в db гриде напрямую добраться к ячейки нельзя (как, например, в string гриде). А квери у меня большой, и делать его еще больше, чтобы он сам возвращал номер строки не хочется, т.к. я выяснила, что это не так уж и тривиально. Может есть мысли на этот счет? |
|||
|
||||
x77 |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 1 Всего: 22 |
для Ib у меня сейчас получилось так. я завёл генератор (my_gen_id), в основной запрос Query1 добавил его вызов
т.е. при каждом переоткрытии таблицы он начитывает номера полей из самого запроса. безотказная фишка. есть только одно но: значение генератора каждый раз увеличивается. поэтому я завёл ещё одну TQuery с таким SQL:
и повесил обработчик на TQuery1.BeforeOpen:
т.е. перед каждым открытием Query1 генератор сбрасывается в ноль. всё классно работает ![]() Это сообщение отредактировал(а) x77 - 3.10.2003, 18:41 -------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
||||||
|
|||||||
Dayana |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 352 Регистрация: 6.10.2002 Где: Тель-Авив Репутация: 1 Всего: 4 |
x77, спасибо, я попробую... только в воскресенье буду на работе, тогда попробую...
и, честно говоря, я не знаю, что такое генератор и как его заводить? и можно ли в Oracle заводить генератор? Это сообщение отредактировал(а) Dayana - 3.10.2003, 18:55 |
|||
|
||||
x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 1 Всего: 22 |
у меня оракла нет
![]() ![]() -------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
Fantasist |
|
|||
![]() Лентяй ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1517 Регистрация: 24.3.2002 Репутация: нет Всего: 41 |
У меня мысля такая: во-первых, выбросить dbGrid или найти нормальный. ![]() Вторая мысля - создать свой компонент наследованный от стандартного и в ключить в него свое свойство, которое уже считать самому при гулянии по квере. Так же можно попытаться контролировать номер строки в квере через событие OnScroll (кажется так), тоже через свою переменную. Пока больше идей нет. ![]() -------------------- Волны гасят ветер... |
|||
|
||||
Cashey |
|
|||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: нет Всего: 60 |
Ты с Oracle из дельфи работаешь через BDE?
-------------------- библия учит любить ближнего, а камасутра обучает как именно |
|||
|
||||
Cashey |
|
||||||||||||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: нет Всего: 60 |
... если через BDE.
Значит делаешь так (если таблица известна на этапе проектирования): 1. В св-ве Query1.DatabaseName проставляешь имя БД, зарегистрированной в BDE. 2. Создаешь в Query1.SQL, набор команд, например
3. Создаешь в TQuery набор полей, соответствующий вышеприведенному запросу (двойной щелчок мыши на компоненте Query1, далее в открывшемся окне жмешь правую кнопку мыши и выбираешь пункт Add Fields (Add All Fields), во вновь открывшемся окне, если все поля синие, жми ОК), далее создаешь еще одно поле, New Field, назови 'num', тип Integer и Field Type - Calculated. 4. В гриде создаешь колонку (практически так же как и в TQuery) и связываешь его с этип полем. 5. В обработчике событий Query1CalcFields, пишешь следующее:
6. Проверь, что б св-во Query1.AutoCalcFields было в true. Все, после
PS
Не знаю как себя введет Оракл, но можно прописать так
В общем, ты на правильном пути, только у меня все тип-топ, могу демку выслать, если не веришь ![]() Это сообщение отредактировал(а) Cashey - 3.10.2003, 23:17 -------------------- библия учит любить ближнего, а камасутра обучает как именно |
||||||||||||
|
|||||||||||||
Dayana |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 352 Регистрация: 6.10.2002 Где: Тель-Авив Репутация: 1 Всего: 4 |
Cashey, все было сделано так, как ты описал, а RecNo = -1.... если у тебя все хорошо, то я даже и не знаю, где искать... И вышли демку, если не сложно. :-)
Fantasist, идеи очень хорошие, но проблема в том, что проект уже готовый, а мне приходится к нему дописывать. Соответственно делать такие вещи, как менять грид и писать свой компонент, нельзя... (нет на это времени и.... могут уволить, а я только 4 дня работаю...). Наверное придется сделать поле не fkCalculate, a fkData, и попробовать заполнить его на этапе открытия квери в цикле, проходясь по всем строчкам. Интересно получится что-нибудь или нет? Это сообщение отредактировал(а) Dayana - 3.10.2003, 23:38 |
|||
|
||||
Cashey |
|
|||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: нет Всего: 60 |
Точно не получится, поле fkData, может бать только привязана к конкретному полю в таблице, а св-во Value в fkCalculate доступно только для чтения. Дай мне названия и тип полей в твоей таблице, я тебе вышлю свою прожку, если в ней все будет ОК значит: не все делала как я писал. -------------------- библия учит любить ближнего, а камасутра обучает как именно |
|||
|
||||
Dayana |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 352 Регистрация: 6.10.2002 Где: Тель-Авив Репутация: 1 Всего: 4 |
Cashey, у меня не одна таблица, квери берет данные из нескольких таблиц... Да в любом случае, пишу отдельный пример, все равно не получается... все равно -1...
|
|||
|
||||
Dayana |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 352 Регистрация: 6.10.2002 Где: Тель-Авив Репутация: 1 Всего: 4 |
Cashey, ну вот например такой квери:
где сс varchar2[2] id varchar2[10] nname varchar2[15] p_name varchar2[15] вышли мне свой код, плиз... |
|||
|
||||
x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 1 Всего: 22 |
Cashey, все твои варианты прокатывают только для парадокса/дэбэйз/etc. я и сам на это поймался. через RecNo работать с ib/oracle вообще нельзя (почему - я не знаю, но оно всегда равно -1 или вообще чему-то левому). самое реальное и быстрое для oracle с минимум изменений в коде - это завести генератор и добавить его вызов в select. а перед открытием таблицы - обнулять этот генератор. в оракле генераторами являются "последовательности" - sequence. вот там и надо копать.
-------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
Dayana |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 352 Регистрация: 6.10.2002 Где: Тель-Авив Репутация: 1 Всего: 4 |
x77, сделала через генератор (sequence)... все хорошо... а "начальство" сказало, что это плохой стиль... :-(( короче не нравится так.... надо делать по-другому...
Есть еще такая штука RxMemoryData. Туда загружаешь весь квери и можно работать с ним как с квери, и при этом получается тот же квери, но еще и writable. Можно, например после открытия, в цикле заполнить поле для нумерации. Т.е. сделать то, что нельзя с обычным квери. Но с этим у меня тоже проблема, т.к. в этом случае надо переписать много кода. Т.е. не переписать, а заменить в коде обработку существующего квери на новый RxMemoryData. Предложу тому же "начальству". Хотя уверена, что это тоже не подойдет.... Извиняюсь за оффтоп, но просто ужасно начинать работать с готовым проектом, когда над тобой стоит кто-то, кто хочет, что бы писалось так, как он хочет... а не так, как ты считаешь нужным... В этом случае перестаешь понимать, умеешь ли программировать вообще... вот... |
|||
|
||||
x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 1 Всего: 22 |
передай этим господам, что "плохой стиль" - это то, что они видят в зеркале по утрам. это было самое быстрое и корректное решение ![]() ладно, сейчас попробуем иначе, без изменений в базе и существующем коде. если что выйдет - выложу. -------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 1 Всего: 22 |
сделал откровенно идиотский вариант, через закладки. работает, но... в общем, смотри сама. я завёл в квери одно левое поле, Number, типа fkCalculated. реально туда ничего не ложится, оно используется только для того, чтобы отрисовать порядковый номер записи.
вот такая фишка. подозреваю, что на больших наборах данных отрисовка будет тормозить, но больше пока ничего в голову не лезет ![]() -------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 1 Всего: 22 |
да, забыл:
это чтобы добраться до proected property BookmarkSize DataSEt'а. в проекте это можно просто выбросить, вместе с обработчиком Button1Click. -------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
Dayana |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 352 Регистрация: 6.10.2002 Где: Тель-Авив Репутация: 1 Всего: 4 |
x77, идея понятна... А можно ли обработку букмарков засунуть не в отрисовку грида, а в OnCalcFiled квери, и заполнять калькулируемое поле Number?
Это сообщение отредактировал(а) Dayana - 5.10.2003, 18:45 |
|||
|
||||
x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 1 Всего: 22 |
нельзя. OnCalc происходит не для какой-то конкретной записи, а для TDataset'а в целом. т.е. тебе понадобится в обработчике пробегать всю квери от первой до последней записи, попутно заполняя Number. я не уверен, что из этого может выйти что-то путное, но тормоза будут дикие однозначно.
-------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 1 Всего: 22 |
Fantasist, наследовать от стандартного - ты запаришься
![]() в общем, привет ![]() Это сообщение отредактировал(а) x77 - 6.10.2003, 04:52 -------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
gray_k |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1015 Регистрация: 9.1.2003 Где: Москва Репутация: нет Всего: 22 |
Можно сделать FetchAll, и после этого смотреть RecNo. В этом случае в памяти будут все записи запроса, а не только те, которые видно в гриде. Тогда RecNo скакать не должен.
-------------------- С уважением. Gray. |
|||
|
||||
x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 1 Всего: 22 |
попробовал для ib. RecNo = -1.
-------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
gray_k |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1015 Регистрация: 9.1.2003 Где: Москва Репутация: нет Всего: 22 |
Попробовал, всё работает.
-------------------- С уважением. Gray. |
|||
|
||||
x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 1 Всего: 22 |
если есть возможность, сбрось мне свой экзешник ([email protected])
-------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
Dayana |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 352 Регистрация: 6.10.2002 Где: Тель-Авив Репутация: 1 Всего: 4 |
Привет всем!
Что получилось... Самым подходящим способом, который придумался, оказалось создать в db гриде поле, например Num, и в методе OnDrawColumnCell, с которым приходит TRect, высчитать номер строки... НО... оказалось все намного проще... Оказалось можно сделать так, на что я расчитывала в самом начале, но в инете не нашла об этом инфы. В Оракле есть такая штука, как ROWNUM, которая возвращает номер строки в результирующем наборе данных... Это же так логично... только я убила 2 дня, чтобы это найти... |
|||
|
||||
Cashey |
|
|||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: нет Всего: 60 |
Dayana рад за тебя, тока с RecNo, что так не чего и не получилось?
-------------------- библия учит любить ближнего, а камасутра обучает как именно |
|||
|
||||
x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 1 Всего: 22 |
Dayana, зато повеселились
![]() Cashey, да глючит он. то, что работает на одних платформах, потом не работает на других, дебильство, лучше не связываться. -------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
Dayana |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 352 Регистрация: 6.10.2002 Где: Тель-Авив Репутация: 1 Всего: 4 |
Cashey, нет... не работает... да мне все здесь (те, кто давно с Ораклом работает) твердят, что не будет RecNo работать....
x77, ага... очень было весело... :-) |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Базы данных и репортинг" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |