Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.12.23;
Скачать: [xml.tar.bz2];

Вниз

Этот странный DataSet   Найти похожие ветки 

 
Goida   (2003-11-28 16:49) [0]

Почему в DataSet RecNo постоянно равен -1?


 
Anatoly Podgoretsky   (2003-11-28 16:51) [1]

А почему бы и нет.


 
Inkotex   (2003-11-28 16:54) [2]

RecNo ето параметр номера записи в активном наборе даных,и если ты нечого неменяеш он с начала всегда будет равен 1.
Может тебе надо RecordCount


 
BlackKing   (2003-11-28 17:01) [3]

Jesli baza na SQL-servere to RecNo vsegda -1. A v Paradox i DBase ukazivajet na tekushuju zapis".
Zhal" dlja SQL ona ne rabotajet :o(


 
sniknik   (2003-11-28 17:04) [4]

http://delphimaster.net/view/3-1069400708/
гляжу наконецто проверил, может и другим рекомендациям последуеш наконец?


 
sniknik   (2003-11-28 17:08) [5]

BlackKing (28.11.03 17:01) [3]
не всегда, когда рекодсет получает все данные RecNo отражает номер записи в полученном рекордсете. (но это не номер записи в таблице! жего обычно хотят)


 
Vlad   (2003-11-28 17:11) [6]

Вопрос пора в FAQ, чесслово.
Какая СУБД хоть и какие компоненты доступа ?


 
Goida   (2003-11-28 17:13) [7]

> sniknik ©
Да, только проверил. Но не потому что ленивый ;) Времени нет.
Тогда делал лабу, теперь работу, а проблема осталась та еще. Ни как не могу разобраться.
А мне нужно сохранять позицию после обновления... :((( Что делать?


 
HSolo   (2003-11-28 17:15) [8]

Запомнить ключ записи, потом Locate


 
Goida   (2003-11-28 17:16) [9]

> Vlad
Sybase и MsSQL. Стандартные компоненты доступа.


 
Goida   (2003-11-28 17:17) [10]

>HSolo ©
А locate перенесет на нужную запись?


 
Inkotex   (2003-11-28 17:18) [11]

Неуверен что поможет, ты ставь bookmark делай обновление потом возвращайся к закладке.


 
Goida   (2003-11-28 17:20) [12]

> Inkotex
Как оную поставить?


 
HSolo   (2003-11-28 17:22) [13]

Разумеется, перенесет, куда ж он денется :)) - если Вы запомните все поля, нужные для однозначного опознания нужной Вам записи


 
BlackKing   (2003-11-28 17:24) [14]

sniknik © (28.11.03 17:08) [5]
ja i imel v vidu porjadkovij nomer v datasete, a ne v tablice.
vot potomu i ne pojmu, pochemu jego ne sdelali dlja SQL.


 
Vlad   (2003-11-28 17:25) [15]


> Goida © (28.11.03 17:13) [7]

Для того чтобы сохранять позицию курсора совсем не нужно запоминать RecNo. Это ошибочный путь.
Правильнее будет или использовать TBookMark или позиционироваться с помощью Locate, но для этого нужно иметь уникальное поле (набор полей)
напр.
var
OldId: integer;
begin
OldId:=DataSet.FieldByName("ID").AsInteger;
..... //Действия над набором данных
DataSet.Locate("ID",OldId,[]);
end;


или так:

var
B: TBookMark
begin
B:=DataSet.GetBookMark;
..... //Действия над набором данных
DataSet.GotoBookMark(B);
DataSet.FreeBookMark(B);
end;


 
sniknik   (2003-11-28 17:26) [16]

Goida © (28.11.03 17:16) [9]
я тебе про ADO уже говорил?
http://www.delphimaster.ru/cgi-bin/download.pl?look=1&id=1069281940&n=1
зайди сюда, скачай тулзу которая в exe-шнике лежит, сделай в ней запрос к своему MsSQL и посмотри как грид себя ведет. устраивает?


 
Inkotex   (2003-11-28 17:28) [17]

This example uses a button to copy the value of a field in the previous record into the corresponding field in the current record.

procedure TForm1.CopyDataClick(Sender: TObject);

var
SavePlace: TBookmark;
PrevValue: Variant;
begin
with MyData do
begin
{ get a bookmark so that we can return to the same record }
SavePlace := GetBookmark;
try

{ move to prior record}

FindPrior;

{ get the value }

PrevValue := Fields[0].Value;

{Move back to the bookmark

this may not be the next record anymore
if something else is changing the dataset asynchronously }
GotoBookmark(SavePlace);
{ Set the value }
Fields[0].Value := PrevValue;
{ Free the bookmark }
finally
FreeBookmark(SavePlace);
end;
end;

end;

To ensure that the button is disabled when there is no previous record, the OnDataChange event of the DataSource detects when the user moves to the beginning of file (BOF property becomes true), and disables the button.

procedure TForm1.MyDataDataChange(Sender: TObject; Field: TField);

begin
if MyData.Bof then
CopyData.Enabled := False
else
CopyData.Enabled := True;
end;


 
Goida   (2003-11-28 17:39) [18]

> sniknik
Я с ADO еще не разу не сталкивался. Конечно, он лучше, раз все его используют. Но я хотел бы сначала узнать ЧЕМ он лучше.


 
sniknik   (2003-11-28 17:55) [19]

я не говорил что он лутше, и только не изза того что все его используют (я с ним начинал давно, никто(! :о), вру конечно) не использовал, и статей каких на королевстве счас валом не было вообще, помню когда первая появилась жалел что не было раньше). это не показатель.
просто знаю что там можно такого добится без особых усилий (это параметры по умолчанию). показатель то, что, тебе это нужно, в этих компонентах это есть. чего еще?


 
ksan   (2003-11-28 19:52) [20]

А по моему, ADO - это гиблое дело потому, что там ничего не видно. Вот например про IBExpress все известно и все контролируемо. А ADO не "упровляемый".



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.12.23;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.007 c
3-75103
Ross
2003-11-29 15:45
2003.12.23
Delphi+MySQL


14-75329
Мазут Береговой
2003-12-02 04:18
2003.12.23
Эта ветка чи-иста-а для любознательных па-ацанов!...


1-75214
scorpi
2003-12-11 07:33
2003.12.23
Перевод строки в код


1-75263
Димон
2003-12-10 10:42
2003.12.23
Сортировка в ListView


6-75298
ChayNik
2003-10-27 04:17
2003.12.23
Помогите Чайнику





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский