Czas, Data, AutoInc, Sql...

0

Witam ponownie!

Mam pewien problem, a mianowicie.

  1. Chce porownac czas - godzine, tzn. Chce aby nie mozna bylo dodac do bazy rekordu o godzinie, ktora wybieram sobie na formie poprzez DateTimePicker, ktora jest mniejsza od godziny obecnej czyli "now". Z data sobie poradzilem:

If DateTimePicker1.Date>=StrToDate(Label1.Caption)
then
...

,lecz z godzina niestety. Myslalem, ze to bedzie podobnie, tj.:
If DateTimePicker2.Time>=StrToTime(Label3.Caption)
then
...
Dalem wczesniej formatowanie na 'HH:mm', bo w DateTimePicker2, tez takie mam, ale to pewnie nie ma wplywu. Jednak nie reaguje na IF'a.

  1. Chce skasowac wszystkie rekordy utworzone wczesniej w tabeli, oprocz tych ktorych data utworzenia jest >= od obecnej.

  2. Mam pole AutoInc i czy naprawde nie mozna wyzerowac tego pola. Szukalem i nic (moze slabo szukalem). Jezeli nie to po jakiej cyfrze sie wyzeruje samo, tzn. ile maxymalnie bedzie rekordow, az licznik sie wyzeruje, przekreci i znowu zacznie od 1?

  3. A jaka moze byc procedura dla numerowania rekordow (nie w sql'u). Wiem, ze cos z For, ale niestety nic dalej.

  4. Jaki mam dac warunek w sql'u, ze jak nie znajdzie danego rekordu to zeby wyskoczylo np.: ShowMessage('Nie ma takiego rekordu').

  5. Jak skasowac w sql'u podswietlony rekord w DBGrid, bo wyskakuje mi blad:
    Error creating cursor handle

Pisze program oparty troche na sql'u (SELECT * ...), troche na normalnych bazach (Table1.Locate ...), ale wszystko na tabelach Paradox.

Za odpowiedzi serdecznie dziekuje.

Pozdrawiam

atp2000

Prosilbym o jakies chociaz wskazowki, bo stoje w miejscu z moja praca, z ktora i tak ciezko mi idzie.

Pozdrawiam

atp2000

0

nie wiem, czy to cos pomoze, ale moze :]

jezeli umiesz PHP, to obsluge bazy zrob w nim, a delphi zaprzegnij do pobierania wynikow od php i wydawania polecen skryptom php... w php wiele rzeczy jest latwiej zrobic, a na dodatek masz mniejsza szanse, ze w pseudolosowym momencie wywali Ci access violation :]

0

Witam.
AD2.
DELETE FROM twoja_tablica WHERE data_zapisu BETWEEN "podajesz date dzisiejsza" AND "podajesz date wieksza"
(chociaż nie zabardzo rozumiem sens tego problemu czemu usuwac rekordy z data wieksza od dzisiejszej to wyglada na to ze wstawiasz je tam z jakims wyprzedzeniem ?? ;>)
AD3.
Jeśli chodzi o pole typu autoinc to możesz zmienić jego typ na integer wykonać
na nim swoje operacje i nastepnie z powrotem przywrócić typ autoinc.

0

Witam!

Dzieki za odpowiedzi.

PHP niestety nie umiem.

A co do nizszego postu to:

Chce skasowac date wczesniejsza od obecnej. Ale jak to mozna zrobic nie w sql'u?
A jak z poziomu programu zmienic pole AutoInc na Integer i odwrotnie (pewnie analogia). Operuje na TTable.

No i oczywiscie prosze o odpowiedzi na inne punkty.

Pozdrawiam

atp2000

0

Witam.
Zmienic typ pola możesz sql-em np. tak
ALTER TABLE nazwa_tabeli MODIFY (nazwa_pola nowy_typ_pola);
Pozdro hej

1 użytkowników online, w tym zalogowanych: 0, gości: 1