#This code prints out all products in the database # that are below a specified price (assumed to have been determined # beforehand, and stored in the variable targetPrice) # The output is in HTML table format, appropriate for CGI output #load the SQL shared object library. the Tcl interpreter could also #have been compiled with the library, making this line unnecessary load /home/aroetter/tcl-sql/sql.so #these are well defined beforehand, or they could #be passed into the script set DBNAME "clientWebSite"; set TBLNAME "products"; set DBHOST "backendpany" set DBUSER "mysqluser" set DBPASSWD "abigsecret" set targetPrice 200; #connect to the database set handle [sql connect $DBHOST $DBUSER $DBPASSWD] sql selectdb $handle $DBNAME ;# get test database #run a query using the specified sql code sql query $handle "select * from $TBLNAME where price <= $targetPrice" #print out html table header puts "<table border=4>" puts "<th>Product Id <th width=200>Description <th>Price (\$)" #output table rows - each fetchrow retrieves one result #from the sql query while {[set row [sql fetchrow $handle]] != ""} { set prodid [lindex $row 0] set descrip [lindex $row 1] set price [lindex $row 2] puts "<tr><td>$prodid <td align=center>$descrip <td>$price" } puts "</table>" #empty the query result buffer - should already be empty in this case sql endquery $handle #close the db connection - in practice this same connection #is used for multiple queries sql disconnect $handle
#include #include #include const char *DBNAME = "clientWebSite"; const char *DBTABLE = "products"; const char *DBHOST = "backendpany"; const char *DBUSER = "mysqluser"; const char *DBPASSWD = "abigsecret": int main() { try { //open the database connection and query Connection con(DBNAME, DBHOST, DBUSER, DBPASSWD); Query query = con.query(); //write valid sql code to the query object query << "select * from " << DBTABLE; //run the query and store the results Result res = query.store(); //write out the html table header cout << "<table border=4>\n"; cout << "<th>Product Id <th width=200>Description" << "<th>Price ($)" << endl; Result::iterator curResult; Row row; //iterate over each result and put it into an html table for (curResult = res.begin(); curResult != res.end(); curResult++) { row = *curResult; cout << "<tr><td align=center>" << row[0] << "<td>" << row[1] << "<td>" << row[2] << endl; } cout << "</table>" << endl; } catch (BadQuery er) { // handle a bad query (usually caused by a sql syntax error) cerr << "Error: " << er.error << endl; return -1; } catch (BadConversion er) { //handle conversion errors out of the database as well cerr << "Error: Can''t convert \"" << er.data << "\" to a \"" << er.type_name << "\"." << endl; return -1; } return 0; }
欢迎您访问www.5ucms.org
上一篇:5ucms插件,安装并使用phpMyAdmin管理MySQL数据库 下一篇:5ucms仿站,linux下如何建立mysql镜像数据库 |
|
本站声明:本网站所载文章等内容,目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权及其它问题,请在30日内与本网联系(Email:3876307#qq.com),我们将在第一时间删除内容。若原创内容转载请注明出处。 5ucms模版,Linux应用集成MySQL数据库访问技巧的关键词: |