我正在開發一個livecode應用程序,其中我需要使用基於雲的sqlite,這意味着它應該可以共享所有users.As現在我使用本地sqlite,但我認爲它只適用於一個設備應用程序,儘管每個用戶都有自己的數據庫。但我想要的是共享一個數據庫給所有用戶。有人建議我使用JSON解析遠程數據庫。 http://lessons.runrev.com/s/lessons/m/4071/l/7003-connecting-to-a-mysql-database。這個mysql數據庫可以通過網址,用戶名和密碼從web訪問。這裏沒有任何Json解析。在Sqlite的情況下可能嗎? 請幫忙Sqlite基於雲代碼的Livecode集中式數據庫
2
A
回答
0
SQLite被設計成單用戶本地文件數據庫,所以它不適合你的應用程序。有很多基於雲的數據存儲選項。你可以,如果你想直接連接到遠程數據庫服務器,如MySQL,但這意味着啓用遠程訪問,這是一個安全風險。如果您只需要從一組受限制的IP訪問數據庫,那麼可能值得考慮,但使用SSL和只具有有限權限的用戶。
我不知道JSON如何參與,但您可以使用Web服務器+服務器端腳本來創建返回JSON對象的API。這是比遠程訪問更安全的方法。還有其他選擇... Amazon Web Services SimpleDB可能適合您。
2
如果您爲它編寫服務器,可以將SQLite用於多個客戶端。請注意,使用MySQL或PostgreSQL服務器可能更容易,即使他們的強類型很煩人。
對於聯網的SQLite,您需要一個通過套接字連接從客戶端接收數據的服務器。所以基本上你會有一個LiveCode程序傳遞SQL查詢,它通過網絡傳遞。一個非常simplicistic例子(未經測試):
服務器:
on mouseUp
accept connections on port 8080 with message "queryMessage"
end mouseUp
on queryMessage theIP
read from socket theIP until return
put it into mySQL
delete char -1 of mySQL --remove trailing return that was added for network protocol
put revOpenDatabase("SQLite","path/to/myDatabase.sqlite",,,) into connectionID
put revDataFromQuery(,,connectionID,mySQL) into myResult
revCloseDatabase connectionID
write length(myResult) & return & myResult to socket theIP --no return needed, length based
close socket theIP
end queryMessage
客戶端:
on mouseUp
-- make sure to know what IP the server is running from!
-- the number after ":" is the port
put "localhost:8080" into myIP
open socket to myIP
write "SELECT * FROM tableName" & return to socket myIP
read from socket myIP until return
put it into returnStringLength
read from socket myIP for returnStringLength chars
put it into field "the sql query result"
close socket myIP
end mouseUp
你需要額外的:
- 方式來處理像INSERT,PRAGMA等命令。(基本上是revExecuteSQL)
- SQL錯誤報告/ han危及周圍
- 插槽錯誤報告/處理
- 如果公衆開放的,你需要安全!
- 日誌記錄誰在查詢和正在發生的事情
我只用4-8客戶這種做法,所以我不知道它有多好尺度較大客戶基礎的。請注意,在這種情況下,「服務器」不在共享虛擬主機上運行(例如網頁),而是在同一本地網絡(適合與客戶端在同一臺PC上運行的示例中)的PC上的「正常」程序。在互聯網上這樣做通常需要你在路由器或防火牆上轉發端口,所以設置起來有點困難,但也有可能。
確保查找字典中示例中使用的命令。
相關問題
- 1. Livecode中的雲基Sqlite數據庫
- 2. 顯示基於代碼數據庫
- 3. 基於雲的LAMP集羣
- 4. 如何從基於android的sqlite數據庫中選擇數據
- 5. 基於URL在動態代碼中設置數據庫
- 6. .net程序集基於數據庫
- 7. 用於傳感器數據的基於雲的NoSQL數據庫服務
- 8. 代碼點火器選擇基於http_host的數據庫
- 9. 基於XML或數據庫結構的Flex代碼生成器
- 10. 錯誤的Acumatica創建代碼基於數據庫表
- 11. 基於代碼的變數
- 12. 程序/網站生成基於mysql數據庫的html格式代碼
- 13. 加密SQLite數據庫中的密碼?
- 14. 解碼SQLite數據庫中的BLOB
- 15. 什麼是基於雲的關係數據庫
- 16. SQLite數據庫位於android
- 17. 基於表元數據生成代碼
- 18. 如何將基於Feed的TensorFlow基本代碼轉換爲使用「數據集」?
- 19. iPhone SQLite數據庫和基於Web的數據庫同步和交互建議
- 20. LiveCode源代碼控制
- 21. 如何在雲代碼中查詢Firebase實時數據庫
- 22. 基於另一列查詢SQLITE數據庫中的一列數據
- 23. 基於數據庫表定義自動生成代碼?
- 24. 基於點雲數據顯示網格
- 25. Android Sqlite數據庫模式
- 26. 基於條件的代碼存儲庫
- 27. 數據代數與基於SQL的數據庫查詢性能
- 28. 雲中的數據庫?
- 29. 集中式數據庫DB
- 30. 基於NSDocument的應用程序讀取/寫入SQLite數據庫