Przyklad operacji na bazie

Previous  Next

Skrypt wykonujący operacje tworzenie tabeli, zapisu i odczytu

  
package require antUtility
set FIRST_HOOK 1

proc startup { } {
    # pobieramy liste kanalow wejsciowych
    foreach channel [ antGetInputChannels ] {
       antSetChannelControl $channel save_and_notify
    }

    antInstallHook "5 s"
}
proc shutdown { } {
  antRemoveHook "5 s"
}
 proc notifyData { channel_name } {
   global FIRST_HOOK
  if { "sql_result_in" == $channel_name } { return }
 
     if { $FIRST_HOOK == 1 } { return }
    #wartosc przychodzaca z danego kanalu zapisujemy do bazy   
        set value [ lindex [ antGetChannelValues $channel_name ] 0 ]
        antClearChannelValues $channel_name
        set t [ antTimeToString [ antGetCurrentTime ] ]
        antSQLQuery sql_result_in answer "insert into tabela values ('$value','$t','$channel_name')"
        antSQLCheck answer update
   
 }
 proc timerHook { hook_name } {
   global FIRST_HOOK
#przy pierwszym wykonaniu skryptu zakladamy tabele z kolumnami wartosc czas nazwa
  
   if { $FIRST_HOOK } {
antSQLQuery sql_result_in answer "create table tabela ( wartosc varchar(10) , czas varchar(30), nazwa varchar (20) )"
   if { [catch {antSQLCheck answer update}] } {   
antSQLQuery sql_result_in answer "create table tabela ( wartosc varchar(10) , czas  varchar(30), nazwa varchar (20) )"  
    }
    
    set FIRST_HOOK 0
      } 
#polecenie wyswietlenia wszystkich elementow tabeli 
  
    antSQLQuery sql_result_in answer "SELECT * FROM tabela"
    antSQLCheck answer result
    antLog "Wynik zawiera $answer(column_count) kolumn i $answer(row_count) wierszy"
#Wyswietlamy w logach wystemowych zawartosci poszczegolnych wierszy #i kolumn
    for { set i 0 } { $i < $answer(column_count) } { incr i } {
        antLog "Kolumna $i: nazwa \"$answer(column_$i\_name)\", nazwa w tabeli \"$answer(column_$i\_table_name)\", typ \"$answer(column_$i\_type)\""
    }
    for { set i 0 } { $i < $answer(row_count) } { incr i } {
        antLog "Wiersz $i: \"$answer(row$i)\""
    }
 }