151
Forum Registration Disabled - Send a request to support@scriptbasic.org to join the forum.
User Guide
Developers Guide
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
INCLUDE bdb.bas
db = bdb::Open("test.db",bdb::BTree,bdb::Create,0)
bdb::BeginTransaction
PRINT "Transaction Started\n"
counter = bdb::Get(db,"COUNTER")
PRINT "Counter is ",counter,"\n"
IF IsDefined(counter) THEN
counter = counter + 1
bdb::Update(db,counter)
print "Record Updated\n "
ELSE
counter = 1
bdb::Put(DB,"COUNTER",counter)
PRINT "Record Created\n "
END IF
bdb::EndTransaction
PRINT "Transaction Completed\n"
bdb::Close(db)
' bdb::Drop("test.db")
END
Original Berkeley DB Documentation
' Glade XML Demo
' GTK Interface
include gtk.bas
include cio.bas
cio::detach()
' GTK Interface Function
FUNCTION GUI(g0, g1, g2, g3, g4, g5, g6, g7, g8, g9)
LOCAL gtk_cmd
gtk_cmd = STR(g0) & " " & STR(g1) & " " & STR(g2) & " " & STR(g3) & " " & STR(g4) & " " & STR(g5) & " " & STR(g6) & " " & STR(g7) & " " & STR(g8) & " " & STR(g9)
GUI = GTK::gtk(gtk_cmd)
END FUNCTION
' Load GTK Function DEF's
GUI("g:\\gtk-server\\gtk-server.cfg")
' Enable GTK Logging
' GUI("gtk_server_logging", 1)
' Create GUI
xml = GUI("gtk_server_glade_file", "G:\\sb\\examples\\gtk\\glade_gui.xml")
win = GUI("gtk_server_glade_widget", "window")
GUI("gtk_server_connect", win , "destroy", "exit")
quitbtn = GUI("gtk_server_glade_widget", "QuitButton")
GUI("gtk_server_connect", quitbtn, "clicked", "quit")
' Event Handler
REPEAT
event = GUI("gtk_server_callback", "WAIT")
UNTIL event = "exit" OR event = "quit"
' End Program
GUI("g_object_unref", xml)
GUI("gtk_exit", 0)
END
<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
<glade-interface>
<widget class="GtkWindow" id="window">
<property name="visible">True</property>
<property name="title" translatable="yes">Preferences</property>
<property name="type">GTK_WINDOW_TOPLEVEL</property>
<property name="window_position">GTK_WIN_POS_NONE</property>
<property name="modal">False</property>
<property name="resizable">True</property>
<property name="destroy_with_parent">False</property>
<signal name="delete_event" handler="on_window1_destroy"/>
<child>
<widget class="GtkVBox" id="AllDaGoodies">
<property name="border_width">6</property>
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<child>
<widget class="GtkNotebook" id="Preferences">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="show_tabs">True</property>
<property name="show_border">True</property>
<property name="tab_pos">GTK_POS_TOP</property>
<property name="scrollable">False</property>
<property name="enable_popup">False</property>
<child>
<widget class="GtkVBox" id="LocationOptions">
<property name="border_width">6</property>
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<child>
<widget class="GtkRadioButton" id="Here">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">_Here</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkRadioButton" id="There">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">_There</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
<property name="group">Here</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkButton" id="HelloButton">
<property name="visible">True</property>
<property name="can_default">True</property>
<property name="can_focus">True</property>
<property name="label">Hello</property>
<property name="use_stock">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<signal name="clicked" handler="on_button1_clicked"/>
</widget>
</child>
</widget>
<packing>
<property name="tab_expand">False</property>
<property name="tab_fill">True</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="LocationLabel">
<property name="visible">True</property>
<property name="label" translatable="yes">Location</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
</widget>
<packing>
<property name="type">tab</property>
</packing>
</child>
<child>
<widget class="GtkColorSelection" id="ColorSelection">
<property name="border_width">6</property>
<property name="visible">True</property>
<property name="has_opacity_control">True</property>
<property name="has_palette">False</property>
</widget>
<packing>
<property name="tab_expand">False</property>
<property name="tab_fill">True</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="ColorLabel">
<property name="visible">True</property>
<property name="label" translatable="yes">Color</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
</widget>
<packing>
<property name="type">tab</property>
</packing>
</child>
<child>
<widget class="GtkFontSelection" id="FontSelection">
<property name="border_width">6</property>
<property name="visible">True</property>
<property name="preview_text" translatable="yes">abcdefghijk ABCDEFGHIJK</property>
</widget>
<packing>
<property name="tab_expand">False</property>
<property name="tab_fill">True</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="FontLabel">
<property name="visible">True</property>
<property name="label" translatable="yes">Font</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
</widget>
<packing>
<property name="type">tab</property>
</packing>
</child>
<child>
<widget class="GtkScrolledWindow" id="scrolledwindow1">
<property name="visible">True</property>
<property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
<property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
<property name="shadow_type">GTK_SHADOW_IN</property>
<property name="window_placement">GTK_CORNER_TOP_LEFT</property>
<child>
<widget class="GtkTextView" id="text1">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="editable">True</property>
<property name="justification">GTK_JUSTIFY_LEFT</property>
<property name="wrap_mode">GTK_WRAP_WORD</property>
<property name="cursor_visible">True</property>
<property name="pixels_above_lines">0</property>
<property name="pixels_below_lines">0</property>
<property name="pixels_inside_wrap">0</property>
<property name="left_margin">0</property>
<property name="right_margin">0</property>
<property name="indent">0</property>
<property name="text" translatable="yes"></property>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="EditLabel">
<property name="visible">True</property>
<property name="label" translatable="yes">Edit</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
</widget>
<packing>
<property name="type">tab</property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
<child>
<widget class="GtkVBox" id="TheGlobalButtonArea">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<child>
<widget class="GtkHSeparator" id="hseparator1">
<property name="visible">True</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkHButtonBox" id="hbuttonbox2">
<property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_END</property>
<property name="spacing">0</property>
<child>
<widget class="GtkButton" id="QuitButton">
<property name="visible">True</property>
<property name="can_default">True</property>
<property name="can_focus">True</property>
<property name="label">gtk-quit</property>
<property name="use_stock">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<signal name="clicked" handler="on_window1_destroy"/>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
</widget>
</child>
</widget>
</glade-interface>
#!/usr/bin/scriba -c
INCLUDE cgi.bas
OPTION cgi$Method cgi::Post or cgi::Get
IF cgi::RequestMethod()="GET" THEN
max_tries = 5
tryno=1
mypass = ""
END IF
IF cgi::RequestMethod()="POST" THEN
IF cgi::PostParam("mypass")="LetMeIn" THEN
cgi::Header 302,"text/html"
PRINT "Location: /private.html\n"
cgi::FinishHeader
END
END IF
max_tries=cgi::PostParam("max_tries")
tryno=cgi::PostParam("tryno")
tryno = tryno + 1
IF tryno > val(max_tries) THEN
cgi::Header 302,"text/html"
PRINT "Location: /home.html\n"
cgi::FinishHeader
END
END IF
END IF
cgi::Header 200,"text/html"
cgi::FinishHeader
PRINT """
<html>
Try number """ & tryno & """<br>
Enter Passsword:
<form method=post action=/cgi-bin/getpswd.bas>
<input type=password name=mypass size=10>
<input type=submit value="Go">
<input type=hidden name=max_tries value=""" & max_tries & """>
<input type=hidden name=tryno value=""" & tryno & """>
</form>
</html>
"""
END
--------------------------[home.html]------------------------------
<html>
<h1>Home Page</h1>
</html>
--------------------------[private.html]----------------------------
<html>
<h1>Private Page</h1>
</html>