Files
Fortran-docker-mvc/static/model.html
Tommy Parnell a7037b9e92 init
2017-02-20 16:06:45 -05:00

79 lines
2.3 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>fortran - Controller</title>
<link rel="stylesheet" type="text/css" href="/static/bootstrap.min.css"/>
</head>
<body>
<div class="container">
<div class="row">
<div class="col-sm-12">
<div class="page-header">
<h1>
<a href="/">fortran</a>
<small>finally, a Fortran Web Framework</small>
</h1>
</div>
</div>
</div>
<div class="row">
<div class="navbar navbar-default">
<ul class="nav navbar-nav">
<li>
<a href="/">Home</a>
</li>
<li class="active">
<a href="/static/model.html">Model</a>
</li>
<li>
<a href="/static/view.html">View</a>
</li>
<li>
<a href="/static/controller.html">Controller</a>
</li>
</ul>
</div>
</div>
<div class="row">
<p>The model uses FLIBS Fortran module and C files to talk to SQLite. You should create
the database, tables, and content ahead of time.</p>
<p>You should base your model on marsupial.f90 to make sure it includes the right features.
Here's how you can design a subroutine "getOneMarsupial"</p>
<pre>
subroutine getOneMarsupial(query, name, latinName)
! expect the query
character(len=*) :: query
! define the column return values
character(len=50) :: name, latinName
! connect to your database
call sqlite3_open('marsupials.sqlite3', db)
! prepares query
allocate( column(2) )
call sqlite3_column_query( column(1), 'name', SQLITE_CHAR )
call sqlite3_column_query( column(2), 'latinName', SQLITE_CHAR )
! actual query - where clause to the end
call sqlite3_prepare_select( db, 'marsupials', column, stmt, "WHERE name = '" // trim(query) // "'")
i = 1
do
! iterate to end of returned rows
call sqlite3_next_row(stmt, column, finished)
if (finished) exit
! use column array to fill in name and latinName
call sqlite3_get_column(column(1), name)
call sqlite3_get_column(column(2), latinName)
i = i + 1
end do
endsubroutine
</pre>
</div>
</div>
</body>
</html>