|
#1
|
||||
|
||||
Переход на запись в таблице
У меня проблема:
1. Я имею таблицу (Paradox), имеющая 5 записей (картежей). 2. Table и DataSet расположены в DataModule 3. При создании формы мне надо перейти скажем на 3 запись в таблице, я это реализую следующим способом: Код:
procedure TForm1.FormCreate(Sender: TObject); var Rec: Integer; begin Rec := 3; DM.Table1.First; DM.Table1.MoveBy(Rec); end; Где Rec - номер необходимой мне записи, DM - DataModule. При компиляции он говорит: 'Access violation at address 004a0d7e in module 'Artic.exe'. Read of address 00000058'. Объясните - где ошибка или дайте другой способ перехода на нужную мне запись в таблице. Последний раз редактировалось Ross, 04.02.2006 в 22:09. |
#2
|
||||
|
||||
table1.RecNo:=5;
Без фёрстов. Просто переход и всё. SysMan. C++Builder Internet/Intranet Programming. |
#3
|
||||
|
||||
Благодарю, я уже разобрался. Чё-то он так глючит, когда Table и DataSet находятся в DataModule. Я просто вынес их на форму и всё нормально заработало. А так, я так же перехожу на запись через RecNo. Ещё раз спасибо.
|
#4
|
||||
|
||||
У меня БД - Paradox.
Я имею таблицу состающую из следующих Полей: 1. Razdel - Название предмета, раздела. 2. Vop - Содержание вопроса. 3. Otv-0 - Правильный ответ. 4. Otv-1 - Неправильный ответ. 5. Otv-2 - Неправильный ответ. Я знаю, что в таблице 10 записей. Я хочу занести в пременную содержимое 3 записи поля Otv-0. Желательно не использовать SQL. |
#5
|
||||
|
||||
мммм.... ну, что-то вроде
s:=Tabl1.FieldByname('Razdel').asString+....+Tabl1 .FieldByname('otv').asString SysMan. C++Builder Internet/Intranet Programming. |
#6
|
||||
|
||||
Чичас попробуем. Спасибо.
|
#7
|
||||
|
||||
Ага, спасло. А то надо делать другу дипломку (старая погибла, без надежды на восстановление). Вот и в попыхах делаю всё заново (к конце февраля сдавать) - тестирующая система для института (сказали ему, что если сделает такую прогу, то ему зачтут дипломку). Что меня убило - делать такую прогу, при условии, что они не проходят ни одного языка программирования, он сам по своей собственной инициативе стал изучать VB, а я его заставляю пересесть на мне родной Delphi. Сам паралельно с Delphi изучаю C++ Borland (планирую набрать знания в С для Linux, т.к. огромное желание послать далеко Windows). Ещё раз - СПАСИБО.
|
#8
|
||||
|
||||
пжлст..
а посылать Вин не надо. Ибо это не выгодно. Подавляющее большинство пользователей работают именно с этой ОСью... А если хочешь под Линух программить, то скорее всего надо учится писать дрова или садись за изучение сет. программирования. SysMan. C++Builder Internet/Intranet Programming. |
#9
|
||||
|
||||
Конечно, не надо посылать. Тогда бы я не стал бы так упорно сидеть в Delphi, а сидел бы, где-нибудь на Visual C или что-нибудь подобном.
|
#10
|
||||
|
||||
АААААААААа вот ещё вопрос:
У меня две таблицы. Одна подключена к БД, другая - нет. БД состоит из следующих столбцов: 1. Razdel - здесь хранится название предмета (математика, история и т.д.) 2. Vop - здесь хранится вопрос 3. Otv-1 - здесь хранится правильный ответ 4. Otv-2 - здесь хранится не правильный ответ 5. Otv-3 - здесь хранится не правильный ответ В Razdel n-ое кол-во записей (и математика и истоия и т.д.). Все картежи, которые в поле Razdel, имеют например атрибут Математика копировать во вторую таблицу. Вообщем - всё, что относится к разделу математика, копируется в другую таблицу. Как енто реализовать? |
#11
|
||||
|
||||
Самый простой метод, ИМХО, с помощью sql запроса, примерно вот так:
Код:
INSERT INTO table2 ( Razdel, Vop, [Otv-1], [Otv-2], [Otv-3] ) SELECT Razdel, Vop, [Otv-1], [Otv-2], [Otv-3] FROM table1 WHERE Razdel='Математика' тут table2 - маленькая таблица, table1 - большая |
#12
|
||||
|
||||
Благодарю, попробую. Спасибо.
|