среда, 13 октября 2010 г.

игры с SQL из Harbour (2)

теперь попробуем работать через SDDFB. тестов там нет, так что будем экспериментировать. Берем тест из sddmy и слегка адаптируем. БД уже создана в предыдущем посте, так что будем просто пытаться ее прочитать.
user@desktop:~/sources/harbour/contrib/sddfb/tests$ cat test1.prg
/*
 * $Id: test1.prg 14222 2010-03-24 09:33:58Z vszakats $
 */

#include "dbinfo.ch"
#include "error.ch"

#include "hbrddsql.ch"

REQUEST SDDFB, SQLMIX

ANNOUNCE RDDSYS

FIELD RESIDENTS

PROCEDURE main()
Local DBpath,DBConnect

DBpath:='/home/user/data/simple1.gdb'

//ALTD()
   RDDSETDEFAULT("SQLMIX")

   AEVAL(RDDLIST(), {|X| QOUT(X)})
   if hb_FileExists(DBpath)
      ? "file OK!"
   ENDIF

   DBConnect:=RDDINFO(RDDI_CONNECT, {"FIREBIRD","LOCALHOST", "SYSDBA", "masterkey", DBpath })
   if aaa==0
      ? "Unable connect to the server"
      RETURN
   ENDIF

   ? "Let's browse table (press any key)"
   INKEY(0)
   ? DBUSEAREA( .T.,, "SELECT * FROM test", "test" )
   Browse()

   ? "Let's browse table ordered by resident count (press any key)"
   INKEY(0)
   INDEX ON RESIDENTS TAG residents TO country
   Browse()

   DBCLOSEALL()
   RETURN
Компилим
user@desktop:~/sources/harbour/contrib/sddfb/tests$ hbmk2 test1.prg
hbmk2: Processing local make script: hbmk.hbm
Harbour 2.1.0beta2 (Rev. 15604)
Copyright (c) 1999-2010, http://harbour-project.org/
Compiling 'test1.prg'...
Lines 631, Functions/Procedures 2
Generating C source output to '/tmp/hbmk_r1mfw2.dir/test1.c'... Done.
 и запускаем
user@desktop:~/sources/harbour/contrib/sddfb/tests$ ./test1
  
SQLBASE                                                                                                                                                     
SQLMIX
DBF  
DELIM
SDF 
DBFFPT
DBFNTX
DBFNSX
DBFCDX
SIXCDX
DBFBLOB
file OK!
Let's browse table (press any key)
Error SDDFB/1909  Fetch error (DOS Error 335544569)
Called from DBUSEAREA(0)                          
Called from MAIN(37)
Интересно, при чем тут DOS? Ну да ладно - будем разбираться.
.....TO BE CONTINUED.......

1 комментарий:

Анонимный комментирует...

just read google-translated. Good try! Go ahead!
Mat