Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.07.20;
Скачать: CL | DM;

Вниз

Проследняя запись в таблице   Найти похожие ветки 

 
Муслик   (2008-06-17 10:50) [0]

Скажите пожалуйста как узнать последнюю запись в таблице  (BDE)


 
Ega23 ©   (2008-06-17 10:51) [1]

На сервере? На клиенте? СУБД какая? Ключевое поле есть?


 
Правильный-Вася   (2008-06-17 10:52) [2]

Table.Last


 
affonya   (2008-06-17 10:52) [3]

select * from table order by desc;


 
Поросенок Винни-Пух ©   (2008-06-17 10:52) [4]

что значит "узнать"?
в лицо что ли? или по запаху?


 
Ega23 ©   (2008-06-17 10:53) [5]


> select * from table order by desc;


За такое сразу оторвать гениталии. Дабы всемирный генофонд не портить.


 
Муслик   (2008-06-17 10:53) [6]

огромное спасибо Спасибо! to Поросенок Винни-Пух по левой пятке!


 
Поросенок Винни-Пух ©   (2008-06-17 10:54) [7]

тебя надули. там нет последней записи в принципе.


 
affonya   (2008-06-17 10:59) [8]

то ega
хе хе , но вариант то верный .. проверьте -) а Table.Last; тоже поидее работать будет.

select max(id) from table - последняя запись


 
Муслик   (2008-06-17 11:04) [9]

а почему не работает
panel3.Caption:= IntToStr(table3.Last);


 
Sergey13 ©   (2008-06-17 11:05) [10]

> [9] Муслик   (17.06.08 11:04)

Потому что надо
panel3.Caption:= "Левая пятка";


 
Поросенок Винни-Пух ©   (2008-06-17 11:06) [11]

пипец что называется.


 
Муслик   (2008-06-17 11:07) [12]

Я понимаю что это глупо но мне надо выводить последнюю запись


 
Поросенок Винни-Пух ©   (2008-06-17 11:08) [13]

"узнавать", "выводить"

странные у тебя желания :)))


 
Муслик   (2008-06-17 11:14) [14]

Хорошо поставлю вопрос понятней... есть 3 таблицы 1 ко многим... так вот у каждой записи есть свой номер вот мне нужно присвойитть зфтуд последнюю запись ячейки


 
Anatoly Podgoretsky ©   (2008-06-17 11:19) [15]

Да у тебя ни базы, ни таблиц нет, иначе бы давно похвастался этим.


 
Поросенок Винни-Пух ©   (2008-06-17 11:20) [16]

свой номер-то в поле находится.
вот его значение и выводи.


 
Ega23 ©   (2008-06-17 11:20) [17]


> хе хе , но вариант то верный .. проверьте -)


Даю вводную: есть таблица, в ней миллион записей. Каждая запись состоит из 20 полей. В трёх из них - лежат BLOBы, каждый не менее мегабайта.

А теперь выполняй свой вариант нахождения последнего id.

To Аффтар:

Ещё раз спрашиваю какая СУБД и есть ли ключевое поле.


 
Муслик   (2008-06-17 11:26) [18]

BDE. В том то и дело что ключевого поля нет...


 
Поросенок Винни-Пух ©   (2008-06-17 11:30) [19]

оно здесь все равно мало чем поможет.
ну допустим ключ там фамилия имя отчество.
и чего?


 
Ega23 ©   (2008-06-17 11:38) [20]


> ну допустим ключ там фамилия имя отчество.


Тогда надо другую стратегию выбирать. Был бы ключ с счетчиком - можно было бы через MAX сработать.


 
Игорь Шевченко ©   (2008-06-17 11:41) [21]

Субд BDE не существует


 
Anatoly Podgoretsky ©   (2008-06-17 11:44) [22]


> Ещё раз спрашиваю какая СУБД и есть ли ключевое поле.

Читать [15] и [18]


 
Василий Жогарев ©   (2008-06-17 11:54) [23]


>  Проследняя запись в таблице
>
> Муслик   (17.06.08 10:50)  
> Скажите пожалуйста как узнать последнюю запись в таблице
>  (BDE)

Ответ1:

> Правильный-Вася   (17.06.08 10:52) [2]
> Table.Last

Ответ2:

> affonya   (17.06.08 10:52) [3]
> select * from table order by desc;

ЗЫ
Может ты хотел сказать: SELECT TOP 1 * FROM [TABLE] ORDER BY [FIELD] DESC
Ответ 3:

> affonya   (17.06.08 10:59) [8]
> то ega
> хе хе , но вариант то верный .. проверьте -) а Table.Last;
>  тоже поидее работать будет.
>
> select max(id) from table - последняя запись

Только наверное:
SELECT     *
FROM         [TABLE] t
WHERE     (Kod IN
                         (SELECT     MAX(Kod) AS Kod
                           FROM          [TABLE] AS d
                           WHERE      (t.[Field] = d.[Field])))

или по дате...
SELECT *
FROM [TABLE] t
WHERE ([Date] = (SELECT MAX([Date]) AS [Date] FROM [TABLE] d))


 
Игорь Шевченко ©   (2008-06-17 11:55) [24]


> Может ты хотел сказать: SELECT TOP 1 * FROM [TABLE] ORDER
> BY [FIELD] DESC


Для СУБД Oracle в самый раз


 
Anatoly Podgoretsky ©   (2008-06-17 11:59) [25]

> Василий Жогарев  (17.06.2008 11:54:23)  [23]

Ты несешь ответственность за свои слова или как?
Или ты телепат, не зная ни чего о базе такое заявить.
Садись два.


 
Anatoly Podgoretsky ©   (2008-06-17 12:04) [26]

> Игорь Шевченко  (17.06.2008 11:55:24)  [24]

И что вернет последнею запись в Таблице, а что у у Оракла есть такое понятие и что на это никакак не влияет примененый ORDER BY


 
Игорь Шевченко ©   (2008-06-17 12:06) [27]

Anatoly Podgoretsky ©   (17.06.08 12:04) [26]

Нет, не вернет. Даже первую не вернет, потому что синтаксис запроса неверный


 
андр.   (2008-06-17 12:09) [28]


> Anatoly Podgoretsky ©   (17.06.08 11:59) [25]

Несу ответственность точно также как и автор несет ответственность за свой вопрос, не указав используемую СУБД...


 
Anatoly Podgoretsky ©   (2008-06-17 12:09) [29]

> Игорь Шевченко  (17.06.2008 12:06:27)  [27]

Ну славо богу, а то я уже испугался за теорию РСУБД


 
Василий Жогарев ©   (2008-06-17 12:11) [30]

Сорри за разные ники... куки непотерты...


 
Муслик   (2008-06-17 12:15) [31]

СУБД Paradox.


 
Anatoly Podgoretsky ©   (2008-06-17 12:16) [32]

> Муслик  (17.06.2008 12:15:31)  [31]

Тогда что такое последняя запись?


 
Муслик   (2008-06-17 12:22) [33]

Существует таблица 1 - [№, Имя, Сумма]
Таблица 2 (привзанная к первой) - [№ Визы, Дата, Сумма]
Так вот № Визы ввожится вручную но порядковы, но не сделан ключевым так как может идти не попорядку тоесть 00120 и сразу за ним 00122 вот для каждого Имени из первой таблицы присваивается номер Визы вот мне нужно вывести последнюю запись из таблицы 2 № Визы, но не отдельного Агента а всей таблицы 2 или вывести просто последнюю запись Визы


 
Anatoly Podgoretsky ©   (2008-06-17 12:38) [34]

> Муслик  (17.06.2008 12:22:33)  [33]

Так тут никакими последнеми записями и не пахнет.

ЗЫ: не ищи последнею запись, не зная что это такое, поскольку сказать не можешь. Сумеешь объяснить, что такое последнея запись, то возможно получишь ответ или категорическое НЕ


 
Поросенок Винни-Пух ©   (2008-06-17 12:38) [35]

и что такое "последняя" запись при таком раскладе?


 
MsGuns ©   (2008-06-17 12:43) [36]

Связка Мастер-Детал, очевидно, представлена "волшебными" компонентами TTable
Тяжелый случай.

Для того, чтобы в детале найти тот самый "последний номер" есть два способа
1) При наличии индекса у детала на этот самый "последний номер" активировать этот индекс и тогда использовать метод Table2.Last, а затем уже

 Label1.Caption := Table2.FieldByName(<Имя поля с номером>).AsString;

2)Если индекса нет, то сканировать весь детал в поисках наибольшего значения пресловутого поля:

function TForm1.GetMaxNumber(DataSet: TDataSet) : integer;
var
 bm: TBookMark;
begin
 result := -1;
 with DataSet do
   begin
    bm := GetBookMark;
    DisableControls;
    First;
    While Not Eof do
       begin
         if FieldByName(<Имя поля с номером>).AsInteger>result then
            result := FieldByName(<Имя поля с номером>).AsInteger;
         Next;
       end;
   GoToBookMark(bm);
   FreeBookMark(bm);
   EnableControls;
  end;
end;

Обращение:

 Label1.Caption := IntToStr(GetMaxNumber(Table2));

Но вообще все это уродливо, начиная от парадокса, продолжная отсутствием ключей и заканчивая TTable


 
Муслик   (2008-06-17 12:45) [37]

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


 
Муслик   (2008-06-17 12:49) [38]

MsGuns © при твоей функции она будит показывать сколько записей в таблице  Label1.Caption := IntToStr(GetMaxNumber(Table2)-1);


 
Ega23 ©   (2008-06-17 12:49) [39]


> Так вот № Визы ввожится вручную но порядковы, но не сделан
> ключевым так как может идти не попорядку тоесть 00120 и
> сразу за ним 00122 вот для каждого Имени из первой таблицы
> присваивается номер Визы вот мне нужно вывести последнюю
> запись из таблицы 2 № Визы, но не отдельного Агента а всей
> таблицы 2 или вывести просто последнюю запись Визы


Так вот, для этого дела существует суррогатный ключ: есть ключевое поле-счётчик и есть поле "номер Визы" с уникальным индексом. Счетчик назначается автоматически самой СУБД и является первичным ключом. И ему пофиг на порядковые номера виз и другие поля. Номер визы вводится вручную, при этом уникальный индекс не даёт возможности ввести 2 одинаковых номера. И, кстати, он вообще строкой может (и ИМХО даже должен) являться.

Читать про проектирование БД.


 
Поросенок Винни-Пух ©   (2008-06-17 12:51) [40]

Последняя запись эта та запись, которую я в программе ввёл "последней".

Зашибись.
местное время 12:50
вставляем запись.
меняем время на 12:00
вставляем запись.

Какая из них будет "последней"?



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

Текущий архив: 2008.07.20;
Скачать: CL | DM;

Наверх




Память: 0.56 MB
Время: 0.024 c
15-1212588461
data
2008-06-04 18:07
2008.07.20
Подскажите, как работать с битами в Оракле?


1-1195823317
Cobalt
2007-11-23 16:08
2008.07.20
Создаю XMLDocument с нуля - не работает :(


2-1213696529
JS
2008-06-17 13:55
2008.07.20
Округление


2-1213337899
kivadim
2008-06-13 10:18
2008.07.20
как получить значение свойства класса из внешней программы?


2-1214205706
i
2008-06-23 11:21
2008.07.20
Быстрый список для индексирования....