Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Помогите бегинеру с вставкой в связанные таблицы
|
|||
|---|---|---|---|
|
#18+
Пусть есть две таблицы Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. где поле user_id счетчик в MS Access2000, поле for_whom связано с полем user_id т.е. добавляем user-а и он получает user_id а этот user_id надо передать в for_whom Как это все организовать? p.s. Delphi7 MS Access2000, через Ado ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2003, 09:48 |
|
||
|
Помогите бегинеру с вставкой в связанные таблицы
|
|||
|---|---|---|---|
|
#18+
Да еще. Связь создана в accesse или можно подругому? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2003, 12:27 |
|
||
|
Помогите бегинеру с вставкой в связанные таблицы
|
|||
|---|---|---|---|
|
#18+
Может foreign key поможет ?(чтобы автоинкримент из одной таблицы в другую добавлялся) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2003, 07:09 |
|
||
|
Помогите бегинеру с вставкой в связанные таблицы
|
|||
|---|---|---|---|
|
#18+
на бефореПост присваиваешь поле for_whom. какие сложности? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2003, 09:13 |
|
||
|
Помогите бегинеру с вставкой в связанные таблицы
|
|||
|---|---|---|---|
|
#18+
Чего-то события Код: plaintext 1. не работают ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2003, 06:48 |
|
||
|
Помогите бегинеру с вставкой в связанные таблицы
|
|||
|---|---|---|---|
|
#18+
TADOQuery TableUser: SQL: "SELECT * FROM Table_user" TADOQuery TableSalary: SQL: "SELECT * FROM Table_salary WHERE for_whom=:user_id" DataSource ставь TableUser Все. Если TableSalary будет чего-нибудь орать про Parameters, то зайди в Params и добавь параметр 'user_id' (в АДО тип будет OleStr вроде) при перемещении по TableUser в TableSalary будут отбираться соотв. записи, при добавлении в TableSalary записи поле for_whom будет заполняться в соотв. с тек. записью в TableUser Я правильно тебя понял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2003, 08:43 |
|
||
|
Помогите бегинеру с вставкой в связанные таблицы
|
|||
|---|---|---|---|
|
#18+
to Skleroz : Я может объяснился не правильно но это чуть-чуть не то что надо. В моем случае все-равно лучшечем ничего. Дело в другом : как ты написал не работает почему-то. В AdoQuery TableSalary написал этот запрос - он ничего не выдает (нет ни ошибок не данных), хоть данные точно есть такие какие соответствуют запросу. ps ADO Delphi 7, Ms Access 2000 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2003, 07:56 |
|
||
|
Помогите бегинеру с вставкой в связанные таблицы
|
|||
|---|---|---|---|
|
#18+
Так и никто не написал. Я читал что можно так: 1) insert ........ затем select@@identity но это два обращения к базе и не совсем корректно - не пойдет 2) связано с AdoDataSet.RecordSet.bookmark но точно не знаю может кто подскажет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2003, 09:43 |
|
||
|
Помогите бегинеру с вставкой в связанные таблицы
|
|||
|---|---|---|---|
|
#18+
У меня тоже база на Access2000, ADO, C++Builder 6, но что-то я не понял в чем у тебя проблема. Тебе что лень, послать запрос к локальной базе ? Как я понял при добавлении записи в Table_user поле user_id ты не сам подсчитываешь, а оставляешь на совести Access-а. Но Access просто прибавляет единицу к максимальному значению этого поля. Причем тут есть прикол: если,к примеру , добавить запись (user_id получит значение k), а потом удалить эту запись, а затем снова добавить запись к этой таблице, то user_id будет равно не снова k,а k+1. Так что лучше user_id посчитать самому, чтобы потом не мучаться с поиском этой записи (имена юзеров могут совпадать и по имени ты не сможешь узнать ключ). Т.е. нужно послать запрос: select max(user_id) from Table_user Потом полученное значение сохранить в какую-то переменную UserID, прибавить единицу и добавить запись в таблицу Table_user : insert into Table_user (user_id,...) value (:parUser_id,...) где parUser_id равен UserID. Потом в таблицу Table_salary : insert into Table_salary (...,for_whom) value (...,:parFor_whom) где parFor_whom = UserID. Можно конечно значение UserID передавать не через параметры, а лепить SQL строку динамически. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2003, 11:13 |
|
||
|
Помогите бегинеру с вставкой в связанные таблицы
|
|||
|---|---|---|---|
|
#18+
to Cauchy База одна! А пользователей много. Данные могут добавляться одновременно > max будет работать не правильно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2003, 11:40 |
|
||
|
Помогите бегинеру с вставкой в связанные таблицы
|
|||
|---|---|---|---|
|
#18+
То есть ты хочешь после insert узнать получившееся значение для user_id? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2003, 11:50 |
|
||
|
Помогите бегинеру с вставкой в связанные таблицы
|
|||
|---|---|---|---|
|
#18+
Да Хочу user_id для вставки его в другую связ. таблицу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2003, 13:15 |
|
||
|
Помогите бегинеру с вставкой в связанные таблицы
|
|||
|---|---|---|---|
|
#18+
Если используешь ADUQuery, то пока не сделашь Post (LockType=ltOptimistic) запись в главную таблицу не добавиться. Код: plaintext 1. 2. 3. 4. NewID получай как хочешь: или настрой автоматом (by Skleroz) или лови quUser.AfterPost, а на quSalary.BeforeInsert делай Код: plaintext 1. Если LockType=ltBatchOptimistic, то тут другая песня, можно добавлять данные сколько хочешь, но механизм записи нужен будет свой, так как разгребать ключи нужно будет самому. Но если хочется использовать ltBatchOptimistic или SQL команды, то лучше отказаться от полей типа Счетчик (Autoincrement) IMHO. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2003, 17:12 |
|
||
|
Помогите бегинеру с вставкой в связанные таблицы
|
|||
|---|---|---|---|
|
#18+
realbold Если у тебя много пользователей, то я тебе не советую использовать Access, т. к. я уже столкнулся с проблемой, что при запуске с другой машины иногда выдает ошибку, там где ее никогда не возникало. Поэтому решил перейти на MSDE (это все же SQL сервер, хотя и не более 5 одновременно работающих клиентов, а у меня их больше трех никогда не будет). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2003, 17:53 |
|
||
|
Помогите бегинеру с вставкой в связанные таблицы
|
|||
|---|---|---|---|
|
#18+
Всем спасибо за ваши советы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2003, 05:30 |
|
||
|
Помогите бегинеру с вставкой в связанные таблицы
|
|||
|---|---|---|---|
|
#18+
to Cauchy Вообщем уже все здесь написали сделал так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. Таблицы чуть-чуть другие TUser (UId,Uname,Uname2) TOrder (OId,OUser_id,Osum) p.s. LockType=ltOptimistic Работает вроде бы правильно Если я где ошибся напишите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2003, 05:44 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=32278709&tid=2116666]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
71ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
66ms |
get tp. blocked users: |
2ms |
| others: | 254ms |
| total: | 436ms |

| 0 / 0 |
