From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.comp.tex.context/87591 Path: news.gmane.org!not-for-mail From: Hans Hagen Newsgroups: gmane.comp.tex.context Subject: Re: LuaTeX/ConTeXt connect to SQL Server Date: Mon, 26 May 2014 22:56:43 +0200 Message-ID: <5383AA8B.3050007@wxs.nl> References: <53839075.7090008@wxs.nl> Reply-To: mailing list for ConTeXt users NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------070306010506090400050902" X-Trace: ger.gmane.org 1401137833 15335 80.91.229.3 (26 May 2014 20:57:13 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 26 May 2014 20:57:13 +0000 (UTC) To: mailing list for ConTeXt users Original-X-From: ntg-context-bounces@ntg.nl Mon May 26 22:57:07 2014 Return-path: Envelope-to: gctc-ntg-context-518@m.gmane.org Original-Received: from balder.ntg.nl ([5.39.185.229]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Wp1xB-0006nC-0d for gctc-ntg-context-518@m.gmane.org; Mon, 26 May 2014 22:57:05 +0200 Original-Received: from localhost (localhost [127.0.0.1]) by balder.ntg.nl (Postfix) with ESMTP id 976DF1021F for ; Mon, 26 May 2014 22:57:04 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at balder.ntg.nl Original-Received: from balder.ntg.nl ([127.0.0.1]) by localhost (balder.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with LMTP id ShCVcHDls4JY for ; Mon, 26 May 2014 22:57:04 +0200 (CEST) Original-Received: from balder.ntg.nl (localhost [IPv6:::1]) by balder.ntg.nl (Postfix) with ESMTP id BEB8610206 for ; Mon, 26 May 2014 22:56:59 +0200 (CEST) Original-Received: from localhost (localhost [127.0.0.1]) by balder.ntg.nl (Postfix) with ESMTP id 635A6101EC for ; Mon, 26 May 2014 22:56:53 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at balder.ntg.nl Original-Received: from balder.ntg.nl ([127.0.0.1]) by localhost (balder.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with LMTP id tYoHdYBhsz+g for ; Mon, 26 May 2014 22:56:51 +0200 (CEST) Original-Received: from filter4-til.mf.surf.net (filter4-til.mf.surf.net [194.171.167.220]) by balder.ntg.nl (Postfix) with ESMTP id 9FBA7101E6 for ; Mon, 26 May 2014 22:56:45 +0200 (CEST) Original-Received: from smtp.ziggozakelijk.nl (D57D1DA2.static.ziggozakelijk.nl [213.125.29.162]) by filter4-til.mf.surf.net (8.14.3/8.14.3/Debian-9.4) with ESMTP id s4QKuirO011381 for ; Mon, 26 May 2014 22:56:44 +0200 X-Default-Received-SPF: pass (skip=loggedin (res=PASS)) x-ip-name=10.100.1.104; Original-Received: from [10.100.1.104] (unverified [10.100.1.104]) by pragma-net.nl (SurgeMail 6.5a2) with ESMTP id 3772-1713362 for ; Mon, 26 May 2014 22:56:43 +0200 User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 In-Reply-To: X-Authenticated-User: hagen@controller-9 X-Bayes-Prob: 0.0001 (Score 0, tokens from: ntg-context@ntg.nl, base:default, @@RPTN) X-CanIt-Geo: ip=213.125.29.162; country=NL; region=Provincie Overijssel; city=Zwolle; latitude=52.5058; longitude=6.0858; http://maps.google.com/maps?q=52.5058,6.0858&z=6 X-CanItPRO-Stream: uu:ntg-context@ntg.nl (inherits from uu:default, base:default) X-Canit-Stats-ID: 0VM6IUIcu - 3b72fd7b0c7f - 20140526 (trained as not-spam) X-Scanned-By: CanIt (www . roaringpenguin . com) on 194.171.167.220 X-BeenThere: ntg-context@ntg.nl X-Mailman-Version: 2.1.14 Precedence: list List-Id: mailing list for ConTeXt users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: ntg-context-bounces@ntg.nl Original-Sender: ntg-context-bounces@ntg.nl Xref: news.gmane.org gmane.comp.tex.context:87591 Archived-At: This is a multi-part message in MIME format. --------------070306010506090400050902 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit On 5/26/2014 9:48 PM, Matt Baker wrote: > I apologize, I'm not completely understanding you. So the reason I have: > local presets = { > server = "XXX\XXX", > Database = "Customer", > Integrated Security = "True", > } > Is it would need to look something like this - or an equivalent. There > Server would need to be the location of the DB Server, then the DB name, > and then some way to tell it to utilize windows authentication (this model > is based lightly on the C# connection model). no, it should look like this: local presets = { database = "test", username = "root", password = "none", host = "localhost", port = 3306, } You should use lowercase keys. Spaces in keys are impossible anyway unless you use ["foo bar"] = "xxx". It's Lua, so some basic understanding of Lua helps. I'm unaware of windows auth, but username/pwd should work okay. > Is there not a prebuilt library to access SQL built into the LuaTeX/ConTeXT > libraries? It seems that there should be a method in which I could include > a set of database queries in an external document that can link to the tex \usemodule[sql] > document. The closest I am to being familiar with any of this is Nlatexdb > (based off of latexdb and rlatexdb) http://www.ctan.org/pkg/nlatexdb . > I am rather new to ConTeXT and Lua so I am struggling with wrapping my head > around all of this as it is. The interface in context is an abstraction layer that can use several methods. - the command line mysql program (client) - the luasql library (not the best piece of code) - the swiglib lua binding and starting with the client method is easiest as one can also mimmick that on the command line. > Perhaps if you could show me an example document that links to a DB might > be beneficial... I was hoping you would have shown this at the end of your > PDF. attached some left-overs from the 2012 context conference ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com | www.pragma-pod.nl ----------------------------------------------------------------- --------------070306010506090400050902 Content-Type: application/x-pdf; name="demo-sql.pdf" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="demo-sql.pdf" JVBERi0xLjYKJdDUxdgKMTcgMCBvYmoKPDwKL0xlbmd0aCAzOTggICAgICAgCi9GaWx0ZXIg L0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp4Xp1TuU7EMBDt8xXzA2vm8PiQUKRlOSQ6RLoVFQga tqDi95lxDq4IWIrEcTzXO4zwBAhXHU7r2dCdXBIQhapKqcDwCGQRaG8uGErkDFJLwKwEwwH2 p4gU+7vhuiUyhqQlVvmYmClQ4gSiJeRc05wnW8R4hqjcb4SyVYo72yXfFdvp+7nXvxi6l24e ZqnJMRBRgftDt79DeLBRrwGDzajw2iY/AHlQZbXNM9x2N12DmdZhLpWxhJrRkIwolWy+aCva WvoNIYuPfOkAbE3TcZ5g2D+lRsz64EghZsnHDb5CwL/q/KTzTACXFESYZwLYkZYRXXRpdkaC YjQS2HVz4MZPI2TXgH8Vi5NRqlmXiiZ+o9SoddkppmTVxJm2Rq2ih/i30e6V5/BoZ5ay2kUp aGHz7iic5D43c/lwppLbjXJ08X7vZKGe+kM3iYGxLJdBzB7ND+ezJ/pNrdWbuUMmt2idYDlU 53O8Qt8IoxSKyEKYbPvlnjQ2/HEZCvKf4HyCsupLxmqqp3qcL98A0pXfNQplbmRzdHJlYW0K ZW5kb2JqCjI0IDAgb2JqCjw8Ci9MZW5ndGggMzQwICAgICAgIAovRmlsdGVyIC9GbGF0ZURl Y29kZQo+PgpzdHJlYW0KeF6dUs1OwzAMvvcp/AIE27HjREKVtokh7YbobdoJBBd24MTrY7fr NKFqYhzaKHGc788IH4Dw1OFpXQ/d/ZaAKDVVKhWGdyC/gf7niqkKG+RWE5oSDEfYPyCS9odh NzYypqJVWr5sNEpUuEDWmsxamfvyClHWiMpYzHwt/V0m8xel+U7HCirGaY1Tvyt1qkgdMR+H 7qubCZ5xWBIRVXg9dvsDwpvT3wEm563wPao5AnFOjWr0fsJL99yN0suy9PPLWFMzdHWTciVn IsFxZHTnWwyi24m6lFPZxcnmJIeuEEdKYtluI75gwL/euZb9bADXknJmng3giCQMcOURH4lk NyCHL5FUCL9MzY2Zr8uUeKT4O0AubrOangfFehvHwpHCU2VHMg6rl5G8fIrhL2hKSSv7rE+h 5lU/DaEnFkmO3yYQrd2ubXFCWSRhLfm2oH8AZFW/RQplbmRzdHJlYW0KZW5kb2JqCjI3IDAg b2JqCjw8Ci9MZW5ndGggMjc4ICAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJl YW0KeF6dkbFOQzEMRfd8hX+gxnac2JFQJVpRpG6It1WdQLDQgYnfx0n7KoZSqSyJHMf2PdcE H0DwlOh0r6Z0t2FgxlYKV4fpHTh+UJzihK5ikJsjWWGYDrC7J+K63E/bUSiEtbi2/LvQGLlK hVwczVqd6/IDka6IilA1i7suF5ktOmqLqIwMFeqv3l/jr/oxoz5mPk7pK80Cz3NEkZkdXg9p tyd4C/lbIAzdBb4HzQGYBJuQRfAJL+k5DfR6Gf3cmRybUdAdyQuHEu0ah6JFhNSFbo7StZ7S AafrEw5fEU6MatluE37BgH/1ubb72QDxijmLzAZIJ42VdDrt61yHCeocJkgH7uDhzzBk/Te4 mKPnciP4Dxv6jpUKZW5kc3RyZWFtCmVuZG9iagozMCAwIG9iago8PAovTGVuZ3RoIDQ2MyAg ICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnherVTBbtswDL37K/QD5UiK FCVgCNAES4HeivlW9NSiuzSHnvr7I23HCBovnYMeEluiJT6+90hMfxKmuw6n57bvfuwpEUFT pVJT/5rIv0D/54pQhS3lVgFNKfWH9PgTkWzz1N8PBxmhaJWWTw8aARUuKWsFs1aO5/ItomwR lbGY+bNsbjKZ3yjNVzpEUDF2q+/q9L3UMSp1zksCWQoVXcyLFTI6pBHu6rQOLWB6uglIplg5 iDkyAdr7vvh7xMeCgphffffeHVk8ksG1AWdp6fnQPT5henGO7xOCk6vpY6D8kIgzNKpx9i39 7h66QZ+yrM98swlgy3Ksd0ATqHCswZcYHDvY4FfKFI5idhPndAF4KaCtrAS+QMBV91wy6EyA EojqTACHeJMs4TESyeGDdSqeCZid5oo228o2NnjXMwWnyp7JOKhezuThSYYFz5xlowKGJ62z GRvFBQshh98uElpbX9qyQdENik2uMKgPkEv9SK58E5znx9qG5HBpuDWYDhfv/u1WEoNqfLkI ZGjsSq7pMsoMltEHzjhVvrnLiDXGwzrc50121TX/02NE6EOG5/I5dPCROBgy5nSYUWo4fJVc LoU2/WK4fNbrL9WKYLsKZW5kc3RyZWFtCmVuZG9iagozMyAwIG9iago8PAovTGVuZ3RoIDEy MyAgICAgICAKL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnheTYy7CgJBDEX7+Yr8 gPFmZvIYkC0WVLCeTmy18v9bs4uCRe4Dci7oRaBrwdfXWY4XIREeqmJB80mSH0itAY5endoI hqvQfNP9BEgsj3nbwQo2jT7aP+jCYtWoabD7sB/XDNCaB6DHcmjiuaa+tfR1y/vyeZYPRDki hgplbmRzdHJlYW0KZW5kb2JqCjM2IDAgb2JqCjw8Ci9MZW5ndGggMTAyMyAgICAgIAovRmls dGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeF6NVstu3DAMvOcr/ANxJVmyZKBYINkkBXre W9Fre+r/X8sZPtZOHLSHzWYlURwOh6TS9HtK07eHZN/Pt4cvb3nKed5ay+uYbr+mLCeS/C0j zaOWPi3bmFNvebr9mX58TSlvl5+37zQsaV7bqNuyN+x5zmtZp6WNufdtdbvynFIdKbUmnyT/ V/nO+Fwelzzk5uXFVhf5vns5hRdecp3Lknt4WeXGYh6u6qE+iYeliIcqjuG3yqn6itVFVluH jZ/Br0qssQ/UsOAK7oEHQbi3hy/glrN123mhbfgnIrfj2TezAW7gADvAD9xyuoYtbm+wQAyw wl1ABax2b0aMT5Kjl8tjbYxtz/T1HX7k0fPthJZtnUcLPg9stA03AhmiAqtrcv4sfjIjCBAH MwxO9plHPGqFE4iHzFoMYA4sq6fIhO02t62vph0wJd6CRVjgN+6gF1dZ7bHiqhBfZHqvR9hj nxlwHFSM5wWRd1bAB+b6NtdRpBi0UA7UdSYDl+ySTmHojgtKf0EI/yC0IZm9IkQE4vCS3xiA cTPoEprTm+yO/rnNrnhcboyCZRtYTVIkGilG2TqpLnciU3rD7l5Yp/StZc6pR7/wKwE8KsP0 QlCHPLEq91rHSeRNKoU0N54AZKsX6u45dnZaI7U8r1pixvc3wDPPf7SOFatWqtyrFGR5H1E8 nnb1Vt16EetyR+00qo0liWkXFDmdq7HWuS9lCzV6tqzsssi71Ya2uw+duyF8thj8QntmswYU ksECJZTYF/qp7iAWZ7zlMnBvaLzv/xNsyl15H0kMn0GgtyYifLpkThQKfqWzo9lpyAzSaVrP WS19FjaKs+qNd9m8Ecbo2NCMmWA0a3DGMxWuAcbaNyDW5GzCWiPY1RQard62H033265pXNk4 tQ/wW7LLYWDNlYyphZ9AjzF5u4V6YfsGBmC/47ZxrSs858M0zrzvW59JM23zNpYWJJ7NC5fK YIvzJuQigoXIESJeC6pCCub+okD90s4nMsPBJOK09V2mwQWvfqSVQcLac+KczXNK2BBwCsLe kJEWvQOtmAhQXKczjOe0xtPakQikRxHbG0BLRT731n3WNPNW5jUNebnpzDmMOxITALxD49lT fMpQrQwDq9GEdN806OSzlcotktVcIFihgKz6rI8XCZpAXOgnPrwMxJr1WcgaYrV+fZ/mARU5 WRxiTOdjGMirrlie4oXBgnBvh9Cgh7fTSs+9ycOyxrPXhwsSQgllzlFcvas9JP5QqfsnqFqA bbH3U/FYdTG58PX0+9nOthadGJ1BV+zJKAVxKhMZBqOM6jJJkna+x/0NDv2pQ3tZapimTHXh zceHgq4yHANgtZDB9ZVAXm8PfwHi6oenCmVuZHN0cmVhbQplbmRvYmoKMzcgMCBvYmoKPDwK L1R5cGUgL01ldGFkYXRhIC9TdWJ0eXBlIC9YTUwKL0xlbmd0aCAxNzY1ICAgICAgCj4+CnN0 cmVhbQo8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9ImF4dG94cGx1aW9ld2them94eWZ3aXhw ZiI/Pjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iPjxyZGY6UkRGIHhtbG5z OnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+PHJk ZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9k Yy9lbGVtZW50cy8xLjEvIj48ZGM6Zm9ybWF0PmFwcGxpY2F0aW9uL3BkZjwvZGM6Zm9ybWF0 PjxkYzpjcmVhdG9yPjxyZGY6U2VxPjxyZGY6bGkvPjwvcmRmOlNlcT48L2RjOmNyZWF0b3I+ PGRjOmRlc2NyaXB0aW9uLz48ZGM6dGl0bGU+PHJkZjpBbHQ+PHJkZjpsaSB4bWw6bGFuZz0i eC1kZWZhdWx0Ij5kZW1vLXNxbDwvcmRmOmxpPjwvcmRmOkFsdD48L2RjOnRpdGxlPjwvcmRm OkRlc2NyaXB0aW9uPjxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnBkZng9 Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGRmeC8xLjMvIj48cGRmeDpDb25UZVh0LkpvYm5hbWU+ ZGVtby1zcWw8L3BkZng6Q29uVGVYdC5Kb2JuYW1lPjxwZGZ4OkNvblRlWHQuVGltZT4yMDEy LjEwLjExIDE1OjEzPC9wZGZ4OkNvblRlWHQuVGltZT48cGRmeDpDb25UZVh0LlVybD53d3cu cHJhZ21hLWFkZS5jb208L3BkZng6Q29uVGVYdC5Vcmw+PHBkZng6Q29uVGVYdC5WZXJzaW9u PjIwMTIuMTAuMDYgMTU6MzE8L3BkZng6Q29uVGVYdC5WZXJzaW9uPjxwZGZ4OklEPmRlbW8t c3FsLjIwMTItMTAtMTFUMTU6MTM6MDcrMDI6MDA8L3BkZng6SUQ+PHBkZng6UFRFWC5GdWxs YmFubmVyPlRoaXMgaXMgTHVhVGVYLCBWZXJzaW9uIGJldGEtMC43MC4yLTIwMTIwODIwMTYg KFRlWCBMaXZlIDIwMTIvVzMyVGVYKSAoVGVYIExpdmUgMjAxMi9XMzJUZVgpIGtwYXRoc2Vh IHZlcnNpb24gNi4xLjA8L3BkZng6UFRFWC5GdWxsYmFubmVyPjwvcmRmOkRlc2NyaXB0aW9u PjxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFk b2JlLmNvbS94YXAvMS4wLyI+PHhtcDpDcmVhdGVEYXRlPjIwMTItMTAtMTFUMTU6MTM6MDcr MDI6MDA8L3htcDpDcmVhdGVEYXRlPjx4bXA6Q3JlYXRvclRvb2w+Q29uVGVYdCAtIDIwMTIu MTAuMDYgMTU6MzE8L3htcDpDcmVhdG9yVG9vbD48eG1wOk1vZGlmeURhdGU+MjAxMi0xMC0x MVQxNToxMzowNyswMjowMDwveG1wOk1vZGlmeURhdGU+PHhtcDpNZXRhZGF0YURhdGU+MjAx Mi0xMC0xMVQxNToxMzowNyswMjowMDwveG1wOk1ldGFkYXRhRGF0ZT48L3JkZjpEZXNjcmlw dGlvbj48cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczpwZGY9Imh0dHA6Ly9u cy5hZG9iZS5jb20vcGRmLzEuMy8iPjxwZGY6S2V5d29yZHMvPjxwZGY6UHJvZHVjZXI+THVh VGVYLTAuNzAuMjwvcGRmOlByb2R1Y2VyPjxwZGY6VHJhcHBlZD5GYWxzZTwvcGRmOlRyYXBw ZWQ+PC9yZGY6RGVzY3JpcHRpb24+PHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1s bnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iPjx4bXBNTTpEb2N1 bWVudElEPnV1aWQ6NzQ1ZmI3MjEtNDJlYS04ZTgyLTNhYjEtNDIwMTRlZGZlMDNkPC94bXBN TTpEb2N1bWVudElEPjx4bXBNTTpJbnN0YW5jZUlEPnV1aWQ6MjMxMzk5MWYtNDkxNC1iMzg2 LWE4ZGQtOTNkM2Q5YzUzZTUxPC94bXBNTTpJbnN0YW5jZUlEPjwvcmRmOkRlc2NyaXB0aW9u PjwvcmRmOlJERj48L3g6eG1wbWV0YT48P3hwYWNrZXQgZW5kPSJ3Ij8+CmVuZHN0cmVhbQpl bmRvYmoKMzkgMCBvYmoKPDwKL0xlbmd0aCAxNCAgICAgICAgCi9GaWx0ZXIgL0ZsYXRlRGVj b2RlCj4+CnN0cmVhbQp4XmNggACuzocAAhwBdQplbmRzdHJlYW0KZW5kb2JqCjQwIDAgb2Jq Cjw8Ci9MZW5ndGggNzk1MyAgICAgIAovRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0K eF7tegt4U1W69rf32jtN01vSO5U0u6ktFEpbAgVBLik0pZXeaEOBUYS0TdtAm4QkpRSsrXfx hs4FGS+oxfsw2vGCl46CHnScGWfQo87l19FhKOHMPzycOY6HMyok//ftlTQtMOrjf87zn/95 TtNmr732Wt/l/S7rW2sXBABIhCFgYG1oLrX86XdPNWHP2/jX0tbj8B7Y88ePAYSLATTBtq0B 5ca/PL4LQJuIfQ93eDt7Ttz8b4cB4kdw/K2d3f0d4S/+kg2gW4Tj7+xyOtpP7nknGUBP9OZ1 YUfK3PgtAAYJ7y/u6glsm90ihvF+OtJb2+1pc2T9NUsDkDqEz5/pcWzzSr/RbgVIm4v3itvR 4zz26N2L8d4OkLfD63N6v9ty10KAue8AyIMgSDeJPwUZ23PkHyLFXH5lv4UOMRVA1GiZrJFF URoDMdwIW77USqAgZWjssLVjSwmf1aSH0oV74q4Tjm0EeOCB39JT/GGRv6lAeIH0EfZQaypI 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 6kzLlLnSc1HAtf0UxRKvEYHHGNsV2jaKUZ5JjfFIwL28lAF0YDaoJO2mZ5TXWVqzMSBsoVD4 jWPsFv2gW/4+vHr99uV9t/xXPDKxX3fILv52Dhm1RUdb63Wl2s855EOqfumL3v+3fbH1g28h +Ju++KDRtyInX9jODXH8/7gbbpf9NWroo3INN8Wp/FbkCEnSHwI/ZPyn67UFNZ4X/uMPZlNE b1nnKEMULmdcr8/wcujK9ZATQc1PEa/PpavqolxSKAPbPj9eZdduXvtK/nS9AAoIcuecwgHK eLwW0HjJE46R4UXtTssliBPXZDn2hPfdPyo8ZkbuqgkuqjntfPjwIVhV2WyR9bPcBdNysYvH RyexwbKjhIQ/4tmC54PZ0/KezMvyesmZbCd3i7Jfv5vzWOWyBkoMsgYDgz2eLoWUEg4s4qdC PRHiCeRGVbZauRzPkmxecwopGuSn/Rt3cyME3F5Yg1+OH/oK31jjh/xnp9B4g3JU8PYbiAik gCg1lh8OPqEKeLwvRV/KkR/f80D2hIAg3kH5euoq2nm1zmCbvggQrxRGYNHvKeGVLasN7AgQ Ga51QphOBZMANmiFzM1q8FejgahADPS0grynWYZpHrOdLPNhCp3hhwEt+fE2en4VHK/n8+ts uWTso9uiJvy3OvxCm9O7xjXoNOqzFUSC1kLeXdGr4r3DRZQqfKsVGLtfY/+5yprb2mX0vruf NpCB2GX3/wuthQ3qCmVuZHN0cmVhbQplbmRvYmoKNTMgMCBvYmoKPDwKL1R5cGUgL1hSZWYK L0luZGV4IFswIDU0XQovU2l6ZSA1NAovVyBbMSAyIDFdCi9Sb290IDUxIDAgUgovSW5mbyA1 MiAwIFIKL0lEIFs8ODk0N0JCQzYxOTI2MTRFNjRBMTgwMjcxMEJDNzYyMzg+IDw4OTQ3QkJD NjE5MjYxNEU2NEExODAyNzEwQkM3NjIzOD5dCi9MZW5ndGggMTMwICAgICAgIAovRmlsdGVy IC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeF4VxzkOwkAQRNEub+PdwGBzCiQk5GshIOIYcC9y YnKICc3v4Kl+mWkxS5AiQ44CASUq1GjQokMPWxIbBZMNxm7QY6vrx3+KRPp658iUPrwDCmU/ 7wqlwuTdoFZ4m9qD/1bxZIpP707Hve+AlebcNF/8r3V++UaMmLDT7W5/w/AcwAplbmRzdHJl YW0KZW5kb2JqCnN0YXJ0eHJlZgozMDg2NAolJUVPRgo= --------------070306010506090400050902 Content-Type: application/x-tex; name="demo-sql.tex" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="demo-sql.tex" \startluacode local sql = require("util-sql") document.sqlconverter = sql.makeconverter { { name = "id", type = "number" }, { name = "name", type = "string" }, { name = "location",type = "string" }, { name = "data", type = "deserialize" }, } utilities.sql.setmethod("swiglib") -- library | client | lmxsql | swiglib document.sqlpresets = { host = "localhost", username = "someuser", password = "somepassword", database = "test", id = "test" } \stopluacode \setupbodyfont[dejavu] \setuppapersize[S6] \starttext \starttitle[title=Who is who] \startluacode local results = utilities.sql.execute { presets = document.sqlpresets, template = "select * from `test` ;", converter = document.sqlconverter, } context.starttabulate { "|||" } context.HL() context.NC() context.bold("name") context.NC() context.bold("location") context.NC() context.NR() context.HL() for i=1,#results do local result = results[i] context.NC() context(result.name) context.NC() context(result.location) context.NC() context.NR() end context.HL() context.stoptabulate() \stopluacode \stoptitle % \startluacode % % context.starttitle { title = "Who's from here" } % % local results = utilities.sql.execute { % presets = document.sqlpresets, % template = "select * from `test` where `location` = 'Netherlands' ;", % variables = { }, % converter = document.sqlconverter, % } % % context.starttabulate { "|||" } % context.HL() % context.NC() context.bold("name") % context.NC() context.bold("location") % context.NC() context.NR() % context.HL() % for i=1,#results do % local result = results[i] % context.NC() context(result.name) % context.NC() context(result.location) % context.NC() context.NR() % end % context.HL() % context.stoptabulate() % % context.stoptitle() % % \stopluacode % \startluacode % % context.starttitle { title = "Who's from here" } % % local results = utilities.sql.execute { % presets = document.sqlpresets, % template = "select * from `test` where `location` = '%location%' ;", % variables = { location = "Italy" }, % converter = document.sqlconverter, % } % % context.starttabulate { "|||" } % context.HL() % context.NC() context.bold("name") % context.NC() context.bold("location") % context.NC() context.NR() % context.HL() % for i=1,#results do % local result = results[i] % context.NC() context(result.name) % context.NC() context(result.location) % context.NC() context.NR() % end % context.HL() % context.stoptabulate() % % context.stoptitle() % % \stopluacode % \startluacode % % local template = [[ % select % * % from % `test` % where % `location` = '%location%' % order by % `name` ; % ]] % % function document.GetDataByLocation(location) % % local results = utilities.sql.execute { % presets = document.sqlpresets, % template = template, % variables = { location = location }, % converter = document.sqlconverter, % } % % context.starttabulate { "|||" } % context.HL() % context.NC() context.bold("name") % context.NC() context.bold("location") % context.NC() context.NR() % context.HL() % for i=1,#results do % local result = results[i] % context.NC() context(result.name) % context.NC() context(result.location) % context.NC() context.NR() % end % context.HL() % context.stoptabulate() % % context.stoptitle() % % end % % \stopluacode % \starttitle[title=Who's from where] % % \startsubject[title=Who's from the Netherlands] % \ctxlua{document.GetDataByLocation("Netherlands")} % \stopsubject % \startsubject[title=Who's from Italy] % \ctxlua{document.GetDataByLocation("Italy")} % \stopsubject % % \stoptitle % \starttitle[title=Some text] % % \startluacode % % local results = utilities.sql.execute { % presets = document.sqlpresets, % template = "select * from `test` where `name` = 'Hans' ;", % converter = document.sqlconverter, % } % % inspect(results) % % local first = results[1] % % context.starttitle { title = first.data.author } % % context(first.data.quote) % % context.blank() % % context("(%s likes this quote.)",first.name) % % context.stoptitle() % % \stopluacode % % \stoptitle % \startluacode % local data = { % author = "Hermann Zapf", % quote = io.loaddata(resolvers.findfile("zapf.tex")), % } % local results = utilities.sql.execute { % presets = document.sqlpresets, % template = "update `test` set `data` = '%[data]%' where name = 'Hans' ;", % variables = { data = utilities.sql.serialize(data) }, % } % \stopluacode \stoptext --------------070306010506090400050902 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________ --------------070306010506090400050902--