31. Insert / Update / Delete
•
• Remote Web Service
– ,
• Open Data Table
use ‘http://mysite.com/table.xml’ as tableName;
select * from tableName where key=‘value’...
32.
33. Twitter Insert 3
• 1. Open Data Table (XML)
– Ex: http://sandbox.jemr.net/yql-twitter-status.xml
• 2. YQL
use "http://sandbox.jemr.net/yql-twitter-status.xml" as table;
insert into table (username, password, status)
values('yqltesting','****','YQL-Twitter Test !!! ');
• 3. Twitter
34. 1. Open Data Table yql-twitter-status.xml
<?xml version="1.0" encoding="UTF-8"?>
<table xmlns="http://query.yahooapis.com/v1/schema/table.xsd">
<meta>
<sampleQuery>select * from {table}</sampleQuery>
</meta>
<bindings>
<select itemPath="" produces="XML">
<urls><url>http://twitter.com/statuses/show/{id}.xml</url></urls>
<inputs>
<key id="username" type="xs:string" required="false" paramType="variable" />
<key id="id" type="xs:string" required="false" paramType="path" />
</inputs>
<execute><![CDATA[
var r = null;
if (username) {
var query = y.query('select * from twitter.user.timeline where id="'+username+'";');
var result = <twitter/>;
for each (var twit in query.results.entry) {
result.appendChild(twit);
}
response.object = result;
} else {
r = request.get().response;
response.object = r;
}
]]></execute>
</select>
<insert itemPath="" produces="XML">
<urls><url>http://twitter.com/statuses/update.xml</url></urls>
<inputs>
<key id="username" type="xs:string" required="true" paramType="variable" />
<key id="password" type="xs:string" required="true" paramType="variable" />
<key id="status" type="xs:string" required="true" paramType="variable" />
</inputs>
<execute><![CDATA[
var r = null;
y.include("http://yqlblog.net/samples/base64.js");
var authheader = "Basic " + Base64.encode(username+":"+password);
var content = "status="+status;
r = request.header("Authorization", authheader).post(content).response;
response.object = r;
]]></execute>
</insert>
<delete itemPath="" produces="XML">
<urls><url>http://twitter.com/statuses/destroy/{updateid}.xml</url></urls>
<inputs>
<key id="username" type="xs:string" required="true" paramType="variable" />
<key id="password" type="xs:string" required="true" paramType="variable" />
<key id="updateid" type="xs:string" required="true" paramType="path" />
</inputs>
<execute><![CDATA[
var r = null;
y.include("http://yqlblog.net/samples/base64.js");
var authheader = "Basic " + Base64.encode(username+":"+password);
response.object = request.header("Authorization", authheader).del().response;
]]></execute>
</delete>
</bindings>
</table>
35. 2. INSERT into Twitter
use "http://sandbox.jemr.net/yql-twitter-status.xml" as table;
insert into table (username, password, status) values('yqltesting','***','YQL-Twitter Test !!! ');