Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Работа с данными

Страница: 1 |

 

  Вопрос: Ошибка в БД или в VB коде? Помогите плз... Добавлено: 28.05.03 23:50  

Автор вопроса:  Незнайка

Люди, помогите пожалуйста... я заучился и всё перепутал кажись...

Итак, есть база данных (Access) для спортшколы. Одной из задач программы (на VB) явл-ся подготовка к соревнованиям. В базе данных есть таблица Tournaments, где есть поля TournID, TournName.

Другая таблица называется TournDetails. В ней такие поля: TournDetID, TournID, TournDate, TournCountry, TournCity, TournAddress, AmountFirst, AmountSec, AmountThird. Три последние поля для записи результатов соревнований – Кол-во первых, вторых и третьих мест. Но вопрос не в этих полях. Две таблицы связаны между собой по полю TournID. (Один ко многим). Есть в программе форма, в которую тренер сможет вносить название соревнований (если название опр-х соревнований уже не стоит в списке  соревнований). Затем необходимо внести в базу данных дату и место проведения соревнований, для чего есть другая форма, на которой присутствуют такие поля, как TournDate, TournCountry, TournCity, TournAddress. Но когда я пытаюсь вносить данные туда ( deTWD.rscNextTourn.AddNew ), то получаю сбой программы и сообщение об ошибке. Мне выскакивает сообщение, что Либо EOF либо BOF, пустую строку не вставит в рекордсет и таблицу и что данный рекордсет связан с другой таблицей, поле которой отсутствует в данном наборе записей. Все эти сообщения я получал в результате и соединения таблиц в одну ( в этом случае имеет место переполнение данных по полю TournName ) и в результате экспериментов с набором записей и попыткой вставки новых записей в него.

Как мне быть, подскажите, знатоки, крыша уже сползает.... знаю, что на ерунде где-то фаршманулся, но найти ошибку не могу....

Заранее за помощь благодарю. Костя.

Ответить

  Ответы Всего ответов: 5  

Номер ответа: 1
Автор ответа:
 Дeнис



Вопросов: 14
Ответов: 42
 Профиль | | #1 Добавлено: 29.05.03 00:51

Скажу честно с БД написал только 1 прогу... так что...

Но, слыхал, что в некоторых случаях рекомендуется открывать БД в монопольном режиме, т.к. выскакивают различные ошибки, даже если с базой больше ни чего не работает... вот

Вдруг поможет?:))

Ответить

Номер ответа: 2
Автор ответа:
 Alex&r



Вопросов: 10
Ответов: 105
 Профиль | | #2 Добавлено: 29.05.03 10:30

Если имеется связь между таблицами, то одна из них главная, другая подчинённая. Если в главной таблице в связанном поле нет значения соответствующего вводимому в подчинённую таблицу, то будет выдано сообщение об ошибке.

Переполнение  скорее всего является следствием ввода более длинной строки нежели размер поля базы.

Т.е., например, вводится в текстовое поле строка длиной 25 символов, и эта строка вносится в поле базы где только 20 символов. Нужно или расширить поле базы, или обрезать вводимую строку.

Ответить

Номер ответа: 3
Автор ответа:
 MAGNUS



Вопросов: 12
Ответов: 430
 Профиль | | #3 Добавлено: 29.05.03 16:24
Посмотри тип и Location курсора он должен поддерживать букмарки и быть клиентским.

Ответить

Номер ответа: 4
Автор ответа:
 ColdZero



ICQ: 163821935 

Вопросов: 3
Ответов: 1
 Профиль | | #4 Добавлено: 30.05.03 14:16

Привет

Проблема вто что когда ты делаешь связь между таблицами то одна из них должна быть главной , а вторая второстепеной. тепер ты должен проверять что-бы в второстепеной таблиции поле ID соотвесвала перевой таблиции. вот и всё.

Ответить

Номер ответа: 5
Автор ответа:
 Незнайка



Вопросов: 3
Ответов: 3
 Профиль | | #5 Добавлено: 30.05.03 17:30

2 GoldZero: Обе таблицы у меня связаны по полю TournID которое является Primary key в таблице Tournaments и Foreign key в таблице TournDetails. Нее... тут где-то в другом месте собака зарыта.

Всем, кто откликнулся на моё сообщение, большое спасибо. Но проблема пока ещё существует и посему продолжаю ждать ваших советов, братцы.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам