Val Marinov seems to have given you a good answer to your question.
I just want to add
some points that don’t directly answer your question but may help you avoid making some mistakes.
You have some code
self.ListBox1.ItemIndex := Random(ListBox1.Items.Count)
which you want to use to set the listbox’s ItemIndex to a random, valid value. There are a couple of things which are asking for trouble about this:
1. Wrong way to use Random
The online help for the Random function says
In Delphi code, Random returns a random number within the range 0 <= X < Range. If Range is not specified, the result is a real-type random number within the range
0 <= X < 1.
For a ListBox, the range of valid ItemIndex values is 0..Items.Count - 1. But Random can return a fractional part, so a better way to write what you want is:
ListBox1.ItemIndex := Trunc(Random(ListBox1.Items.Count));
Called like that, Random will return a value below ListBox1.Items.Count, and the call to Trunc discards the fractional part.
2. Unnecessary use of self.
Your code is liberally sprinkled with the self qualifier. Having to use self like that is usually a sign of bad or sloppy coding.
In your TForm1.AddALL, the self in the first line tells the compiler that the instance of ListBox1 you are referring to is the one which is the TListBox component on your TForm1, rather than some other ListBox1 variable which may also be in scope (e.g. a global variable called ListBox1) when the line is compiled. But the way to avoid that problem is to avoid having the other ListBox1 in scope in the first place.
I suggest you simply delete all the instances of self., because you shouldn’t need to have them.
3. Avoid setting dataset RecordNumber
Finally, don’t get into the habit of relying on the fact that TClientDataSet allows you to specify a value for RecordNumber, it is rarely a good idea and few dataset types support it.
If you want to go to a random record, better use
Dataset.First;
DataSet.MoveBy(Random(X));
I leave it to you to work out what the argument X to Random should be, to move to a valid, random, record, based on what the online help says about Random.
← →
kvcomp
(2002-03-31 12:21)
[0]
Уже пятый день прошу помочь — никто не дает вразумительного ответа, или перевелись мастаки на Руси?!
Что за ошибка «At beginning of table», которая возникает при выполнении Table1.Edit; (записи в таблице есть)
P.S. Если можно, подробней. 
← →
Lusha
(2002-03-31 12:43)
[1]
Вот только на понт брать не надо, пожалуйста. Чтобы помочь Вам в такой ситуации, ее (ситуацию) нужно реализовать у себя. А это достаточно проблематично, если учесть, что Вы ровным счетом ничего не сказали как Вам удалось ее достичь…
Прежде всего убедитесь в целостности таблицы (запрос SELECT * FROM <имя таблицы> в Database Desktop и сравнение количества возвращенных строк заявленному при ее открытии…)
Как можно более полно укажите в своем вопросе
1. Какой компонент используется для доступа к данным TQuery, TTable etc.
2. Используется ли Cached Updates
3. Приведите пример кода с указанием обработчиков на событиях
…
И я думаю, что через некоторое время (гораздо меньшее, чем пять дней) Вы получите достаточно вразумительный ответ на свой вопрос (возможно даже из своих уст).
← →
kvcomp
(2002-03-31 23:17)
[2]
1) TTable
2) не используется
3)
procedure TFSt.SpeedButton1Click(Sender: TObject);
begin
if Application.MessageBox(«Удалить эту фотографию?»,»Вопрос»,MB_OKCANCEL) <> IDOK then Exit;
TSt.Edit;
DBPhoto.Picture:=nil; объект TDBImage, связанный с граф. полем
TSt.Post;
end;
Для записей, которые не содержат в данный момент картинку в соответствующем поле, ошибки не возникает, а если я нажимаю на SpeedButton тогда, когда у меня в TDBGrid выбрана запись содержащая фото, возникает ошибка «At beginning of table», при выполнении TSt.Edit;
← →
Lusha
(2002-04-01 09:14)
[3]
Сурово… 
А почему бы не очищать поле таким образом…
Table1.Fields[DBPhoto.DataField].Clear; ?
← →
kvcomp
(2002-04-01 19:55)
[4]
Дело в том, что до этой строки дело не доходит!
Я пошагово выполнял программу — ошибка именно на TSt.Edit;
← →
Malder
(2002-04-02 00:22)
[5]
Э-э-э, я не понял кое-чего. Что такое DBPhoto ? Что за компонент ? Мне сейчас влом смотреть, но если есть такое в Delphi, то очень интересно, что в нем храниться ? Ссылка на картинку ? Тогда, что за фраза
Для записей, которые не содержат в данный момент картинку в соответствующем поле ? Если все таки в поле, связанном с DBPhoto храниться сам объект, а не ссылка на него, то что значит
DBPhoto.Picture:=nil ?
Разъясни ситуацию…
← →
Lusha
(2002-04-02 09:03)
[6]
Есть ли какие нибудь обработчики на OnBeforeEdit?
Используется ли фильтр?
Проверьте количество записей в таблице непосредственно перед TSt.Edit.
← →
Johnmen
(2002-04-02 09:24)
[7]
вероятно TSt.Open перед TSt.Edit
← →
Lusha
(2002-04-02 09:28)
[8]
>Johnmen
Гы-гы. Об этом я как то не подумал… 
← →
Ka$per
(2002-04-02 09:44)
[9]
а не проще через SQL
«update table1 set foto=null where id=»value» «
← →
Ромик
(2002-04-02 10:55)
[10]
Проверь, точно ли твой грид связан ИМЕННО с той таблицей, которой даешь Edit. А то может «бегаешь» по одному набору
данных, а ждешь что в другом позиция изменится.
Если хочешь — бросай проект с базой по мылу. У меня сегодня время есть, глядишь вместе разберемся
← →
Mastadon
(2002-04-04 09:17)
[11]
Попробуй эту же запись отредактировать в Database Desktop
или SQL Explorer.Можеь сама таблица вылетила?
Если писать на локальных базах типа Paradox и DBase такое
очень часто случается особенно с Blob полями.

Есть компоненты Clientdataset, Datasourse и DBgrid в связке. База сохранена в cds.
Ошибка возникает при запуске приложения, причем не указывает на строку в коде.
Может быть ошибка гдето здесь так как при откате ошибка изчезает (я коменчу эту часть кода и убираю cds файл из clientdataset1 из поля filename):
| Delphi | ||
|
Не понимаю в чем ошибка, но если пропустить ее, то вроде дальше работает.
|
|
|
|
At beggining of Table?????
- Подписаться на тему
- Сообщить другу
- Скачать/распечатать тему
|
|
|
|
Ребята выручайте. бьюсь уже какой час. Незнаю что и произошло. ранее эта процедура работала все ок. теперь вроде бы тоже, но при открытие созданной этой процедурой таблицы выскакивает эта ошибка «At beggining of Table». Что это за чепуха. // процедура открытия таблицы |
|
pigas |
|
|
Может уже создана таблица с таким имененем |
|
pigas |
|
|
А если только при открытии — может ты Table2 и Table1 на один файл наташил |
|
vach |
|
|
Помоему тут мутняк какойто: (Table1.Name <> ‘ ‘) or (Table1.Name = ‘ ‘) — всегда True А в какой строке это выскакивает? |
|
XXXX |
|
|
ВСЕ!!!!! Нашел в чем ошибка. |
0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
0 пользователей:
- Предыдущая тема
- Базы данных: Общие вопросы
- Следующая тема
[ Script execution time: 0,0258 ] [ 15 queries used ] [ Generated: 21.09.23, 09:55 GMT ]
INTELLIGENT WORK FORUMS
FOR COMPUTER PROFESSIONALS
Contact US
Thanks. We have received your request and will respond promptly.
Log In
Come Join Us!
Are you a
Computer / IT professional?
Join Tek-Tips Forums!
- Talk With Other Members
- Be Notified Of Responses
To Your Posts - Keyword Search
- One-Click Access To Your
Favorite Forums - Automated Signatures
On Your Posts - Best Of All, It’s Free!
*Tek-Tips’s functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.
Posting Guidelines
Promoting, selling, recruiting, coursework and thesis posting is forbidden.
Students Click Here
«At Beginning Of Table»«At Beginning Of Table»(OP) From time to time when I run my application through Delphi, I receive the message It usually happens when I am attempting to post records to a table. Any thoughts? Red Flag SubmittedThank you for helping keep Tek-Tips Forums free from inappropriate posts. |
Join Tek-Tips® Today!
Join your peers on the Internet’s largest technical computer professional community.
It’s easy to join and it’s free.
Here’s Why Members Love Tek-Tips Forums:
Talk To Other Members
- Notification Of Responses To Questions
- Favorite Forums One Click Access
- Keyword Search Of All Posts, And More…
Register now while it’s still free!
Already a member? Close this window and log in.
Join Us Close


Talk To Other Members