Home php c# sql c c++ javascript python java go android git linux asp.net django .net node.js ios xcode cocoa iphone mysql tomcat mongodb bash objective-c scala visual-studio apache elasticsearch jar eclipse jquery ruby-on-rails ruby rubygems android-studio spring lua sqlite emacs ubuntu perl docker swift amazon-web-services svn html ajax xml java-ee maven intellij-idea rvm macos unix css ipad postgresql css3 json windows-server vue.js typescript oracle hibernate internet-explorer github tensorflow laravel symfony redis html5 google-app-engine nginx firefox sqlalchemy lucene erlang flask vim solr webview facebook zend-framework virtualenv nosql ide twitter safari flutter bundle phonegap centos Register | Login | Edit Tags | New Questions | 繁体 | 简体


10 questions online user: 29

0
votes
answers
8 views
+10

字符串轉換爲日期SQLite和與當前日期比較

-1
CREATE TABLE `FormMapping` (
    `PatNum` TEXT, 
    `FormName` TEXT, 
    `SheetNum` TEXT, 
    `IsCompleted` TEXT, 
    `RecordDate` TEXT, 
    `FormOrder` TEXT, 
    PRIMARY KEY(`PatNum`,`SheetNum`) 
); 

以上是我的表結構字符串轉換爲日期SQLite和與當前日期比較

RecordDate甲是「MM/DD/YYYY」

如何轉換「RecordDate」日期和比較在SQLite當前日期?

在此先感謝

+1

這與iOS和Android有什麼關係? – the4kman

+0

不是有效的問題 – HassanUsman

+1

SQLite沒有「日期對象」 – Selvin

沙发
0
1

它與值進行比較後,做了太多的努力我解決了問題,並查詢如下,

DELETE FROM FormMapping WHERE strftime(substr(RecordDate, 7, 4) ||'-'||substr(RecordDate, 1, 2) ||'-'|| substr(RecordDate, 4, 2)) < DATE('now','-7 day') 

謝謝大家的支持。

板凳
0
-1

你可以嘗試將當前的日期,而不是再以dB

public static String simplerDate() { 

     try { 
      Date currentTime = Calendar.getInstance().getTime(); 
      return new SimpleDateFormat("MMM dd ''yy, HH:mm", Locale.ENGLISH).format(date); 
     } catch (ParseException pe) { 
      //Log.i(Utils.class.getSimpleName(), "simplerDate: " + pe); 
      return "N/A"; 
     } 
    } 
+0

爲什麼downvote? – Bmbariah

0
votes
answers
7 views
+10

爲什麼我的單元測試試圖插入一個記錄,當我不問它?

0

我正在使用rails 5和devise。我正在爲我的控制器編寫一些單元測試,但我正在跑到一堵牆上。以下是我正在試圖測試爲什麼我的單元測試試圖插入一個記錄,當我不問它?

# GET /issues/new 
    def new 
    unless user_signed_in? 
     redirect_to new_user_session_path 
    end 
    @issue = Issue.new(stop_onestop_id: params[:stop_id], line_onestop_id: params[:line_id]) 
    end 

這裏的方法就是我寫

# issues_controller_test.rb 
class IssuesControllerTest < ActionDispatch::IntegrationTest 

    include Devise::Test::IntegrationHelpers 

    test "logged in should get issues page" do 
    sign_in users(:one) 
    test_stop_id = 1 
    test_line_id = 1 
    get new_issue_url, params: {stop_id: test_stop_id, line_id: test_line_id} 
    assert_equal test_stop_id, @issue.stop.id 
    assert_equal test_line_id, @issue.line.id 
    assert_response :success 
    end 
end 

然而測試,當我運行它,我得到以下例外...

localhost:Caravan-App davea$ rails test 
Running via Spring preloader in process 9509 
Run options: --seed 48437 

# Running: 

E 

Error: 
IssuesControllerTest#test_logged_in_should_get_issues_page: 
ActiveRecord::RecordNotUnique: SQLite3::ConstraintException: UNIQUE constraint failed: users.email: INSERT INTO "users" ("created_at", "updated_at", "id") VALUES ('2017-12-27 19:07:16.234345', '2017-12-27 19:07:16.234345', 298486374) 



bin/rails test test/controllers/issues_controller_test.rb:6 



Finished in 0.320746s, 3.1177 runs/s, 0.0000 assertions/s. 

1 runs, 0 assertions, 0 failures, 1 errors, 0 skips 

沒有我要求創建新記錄的位置,爲什麼我的測試試圖插入一個?

+1

'用戶(:一個)'抓住測試夾具。你有沒有檢查你的'users.yml'夾具文件?你可能會有一些裝置違反了獨特的電子郵件限制。 –

+0

嘗試將'redirect_to new_user_session_path'更改爲'redirect_to new_user_session_path並返回' –

+0

@DerekHopper,使用taht fixture文件進行良好調用。這確實是問題。 – Dave

沙发
0
1

在行sign_in users(:one),users(:one)正在取夾具。看到這告訴我你正在使用一個燈具文件。

您的項目中有一個文件users.yml,它定義了一些用戶進行測試。它看起來像ActiveRecord::RecordNotUnique異常來自那裏。更具體地說,用戶固定裝置似乎違反了對users.email的唯一性約束。

如果您通過爲每個用戶提供一個唯一的電子郵件地址來修復您的users.yml文件,那麼您應該很好。

0
votes
answers
7 views
+10

Python:從每個打開的Google Chrome標籤獲取所有Url

4

我需要從python 3中所有打開的Chrome瀏覽器標籤中獲取所有的URL,而不需要用戶干預。林在Windows上使用Microsoft Visual Studio Python3 10Python:從每個打開的Google Chrome標籤獲取所有Url

我用盡:

直接與開放(路徑當前選項卡)打開它 - 不工作,因爲我沒有permission-我認爲它鎖定,因爲鉻activly寫入它。

Current_Tabs_Source = open(r"C:UsersBeniAppDataLocalGoogleChromeUser 
DataDefaultCurrent Tabs", "r") 
Current_Tabs_Raw = Current_Tabs_Source.read() 
print(Current_Tabs_Raw) #just for checking 

PermissionError:[錯誤13]許可被拒絕通過sglite3

開幕 - 行不通的,因爲其鎖定。我無法在任何地方找到密碼。我試圖打開URL的歷史記錄,但它不起作用。

import sqlite3 
from os import path 

data_path = path.expanduser('~') + r"AppDataLocalGoogleChromeUser 
DataDefault" 
files = listdir(data_path) 
history_db = path.join(data_path, 'history') 

c = sqlite3.connect(history_db) 
cursor = c.cursor() 
select_statement = "SELECT urls.url, urls.visit_count FROM urls, visits 
WHERE urls.id = visits.url;" 
cursor.execute(select_statement) 

results = cursor.fetchall() 

print(results) #just for checking 

sqlite3.OperationalError:數據庫被鎖定

使用硒和第三方Chrome擴展到所有的URL複製到剪貼板 - 不工作,因爲這些擴展僅在活動窗口硒工作。所以Windows中的標籤,我想不要被複制。

我曾考慮過將Chrome擴展每30秒複製一份臨時文件。但是我只知道最小的Javascript,所以這件事讓我很生氣。

那麼有沒有人知道在Python中做到這一點的方法?任何其他解決方案,不勝感激。

+0

我想不出任何可能的方式這可以在Python來完成。我甚至不知道你如何試圖這樣使用SQLite,數據庫語言...您最好的選擇確實是更像JavaScript的前端。 – Mangohero1

+1

這將是有益的,如果你可以分享你一直工作的代碼,直到現在,所以我們可以更好地瞭解你的方法 –

+1

@HamSam我上傳了一些代碼,所以你可以看到即時嘗試 –

沙发
0
0

如果要訪問數據庫,應關閉所有瀏覽器。

Source

0
votes
answers
7 views
+10

錯誤53:文件未找到,而是所有的DLL都存在於路徑中

0

我創建了一個DLL(使用C++),它依賴於sqlite3.dll(用於數據庫訪問& sqlcipher),我試圖使用VBA來訪問它。在VBA我使用以下聲明:錯誤53:文件未找到,而是所有的DLL都存在於路徑中

Declare Function GetData_VBA Lib "xyz.dll" (ByVal path As String, ByVal id As String, ByRef inputArr() As String, ByRef output() As String) As Boolean 

早些時候當DLL是不依賴於sqlite3.dll它工作正常,但是當我介紹sqlite3.dll它開始嘔吐錯誤

錯誤53:xyz.dll沒有找到

我試圖改變聲明

Declare Function GetData_VBA Lib "C:documentsuser...projectsxyz.dll" (ByVal path As String, ByVal id As String, ByRef inputArr() As String, ByRef output() As String) As Boolean 

但仍顯示相同的事情。我用dependency walker來檢查對xyz.dll的所有依賴。我嘗試將所有xyz.dll & sqlite3.dll放在同一位置,但仍然是相同的錯誤。

+0

你的dll是否在C++環境中測試過? –

+0

sqlite3.dll在您的PATH環境變量中的位置,如果不是,則考慮添加它。或者,如果您正在控制其安裝位置,則可以使用特定位置的LoadLibrary手動加載它。 –

+0

您確定您的* .dll *和* sqlite3.dll *之間沒有架構不匹配(32/64位)嗎? – CristiFati

沙发
0
0

cryptlib.lib缺少sqlite3.dll從屬關係。我已經提供了.lib文件,它工作。

0
votes
answers
7 views
+10

將圖像上傳到Azure

1

我正在使用Azure應用程序服務(移動應用程序)並希望通過移動應用程序上傳圖像。我寧願將它加載到數據類型爲varbinary(max)的列中,我可以使用它來存儲圖像。但是,在Easy Tables(在Azure門戶中)中,我只能看到數據類型選項String,Number,Date和Boolean。 請任何人都可以給我一個更好的方法來實現這一目標。將圖像上傳到Azure

沙发
0
1

Azure的表存儲不是關係數據庫,僅支持值數據類型的子集:https://docs.microsoft.com/en-us/rest/api/storageservices/understanding-the-table-service-data-model#property-types

所以,你需要要麼...

  1. 將圖像存儲在Blob storage和Easy Tables/Table Storage中的URL
  2. 將圖像存儲在包含的「MySQL In App」數據庫??中。但我不會使用這個,因爲有一些limitations
  3. 使用Azure的SQL數據庫來存儲圖像或只是網址(再次使用Azure的Blob存儲到存儲圖像)

我建議1或3,一個Blob存儲保存圖像。將圖像存儲在數據庫中並不是一個好主意,因爲a)數據庫的負載更高,b)您可能很難使用瀏覽器緩存或CDN。

+0

我認爲選項一看起來非常好,你有沒有任何文章顯示它是如何實現的。我也想將圖像轉換爲基本64字符串,然後存儲在簡單表格中,然後檢索字符串並隨時將圖像轉換回BitMap圖像。 –

+0

有關如何與Blob存儲進行交互的最流行服務的說明。這裏是.NET desc的[link](https://docs.microsoft.com/zh-cn/azure/storage/blobs/storage-dotnet-how-to-use-blobs)。據我所知,我還認爲base64轉換後的圖像的存儲將不起作用,因爲表存儲條目有64KB的限制。 –

+0

非常感謝您的幫助。 –

0
votes
answers
6 views
+10

更新操作觸發插入查詢?

0

嗨,我知道這很愚蠢,但我真的得到這個時,我編輯任何條目。更新操作觸發插入查詢?

我有一個費用模型和一個expense_line_item和一個paid_line_item模型,它創建正確,當我創建一個新的條目,但在編輯以前的條目它增加了一個新的條目,而不是更新,我。即在更新操作時,它觸發插入查詢。這裏是我的代碼:

我的控制器:

def new 
     @menu = 'Expenses' 
     @page_name = 'Record New Expenses' 
    @expense = Expense.new 
     @expense.expense_line_items.build 
     @expense.paid_line_items.build 
     @expense.voucher_number = "EXP"+Time.now.to_i.to_s 
     @from_accounts = TransactionType.fetch_from_accounts(current_company.id, 'payments') 
     @to_accounts = TransactionType.fetch_to_accounts(current_company.id, 'payments') 

    respond_to do |format| 
     format.html # new.html.erb 
     format.xml { render :xml => @expense } 
    end 
    end 

    # GET /expenses/1/edit 
    def edit 
    @menu = 'Expenses' 
    @page_name = 'Edit Expenses Entry' 
    @expense = Expense.find(params[:id]) 
     @from_accounts = TransactionType.fetch_from_accounts(current_company.id, 'payments') 
     @to_accounts = TransactionType.fetch_to_accounts(current_company.id, 'payments') 
    end 

    # POST /expenses 
    # POST /expenses.xml 
    def create 
    @expense = Expense.new(params[:expense]) 
     @expense.created_by = current_user.id 
     @expense.company_id = current_company.id 

    respond_to do |format| 
     if @expense.save 
     format.html { redirect_to(@expense, :notice => 'Expense was successfully created.') } 
     format.xml { render :xml => @expense, :status => :created, :location => @expense } 
     else 
     @menu = 'Expenses' 
     @page_name = 'Record New Expenses' 
       @from_accounts = TransactionType.fetch_from_accounts(current_company.id, 'payments') 
       @to_accounts = TransactionType.fetch_to_accounts(current_company.id, 'payments')     
     format.html { render :action => "new" } 
     format.xml { render :xml => @expense.errors, :status => :unprocessable_entity } 
     end 
    end 
    end 

    # PUT /expenses/1 
    # PUT /expenses/1.xml 
    def update 
    @expense = Expense.find(params[:id]) 

    respond_to do |format| 
     if @expense.update_attributes(params[:expense]) 
     format.html { redirect_to(@expense, :notice => 'Expense was successfully updated.') } 
     format.xml { head :ok } 
     else 
     @menu = 'Expenses' 
     @page_name = 'Edit Expenses Entry' 
     format.html { render :action => "edit" } 
     format.xml { render :xml => @expense.errors, :status => :unprocessable_entity } 
     end 
    end 
    end 

我的模型:

expense model: 


class Expense < ActiveRecord::Base 
     has_many :expense_line_items 
     has_many :paid_line_items 

     accepts_nested_attributes_for :expense_line_items, :reject_if => lambda {|a| a[:account_id].blank? } , :allow_destroy => true 
     accepts_nested_attributes_for :paid_line_items, :reject_if => lambda {|a| a[:account_id].blank? }, :allow_destroy => true 

     #validations 
     validates_presence_of :expense_date, :voucher_number 
     validates_presence_of :expense_line_items 
     validates_associated :expense_line_items 
     validates_presence_of :paid_line_items 
     validates_associated :paid_line_items 


    end 

expense_line_item:

class ExpenseLineItem < ActiveRecord::Base 
    belongs_to :expense 
end 

paid_line_item:

class PaidLineItem < ActiveRecord::Base 
    belongs_to :expense 
end 

我的形式:

<%= form_for(@expense) do |f| %> 

<% @expense.expense_line_items.each_with_index do |expense_line_item, index| %> 
         <%= render "expense_line_items", :expense_line_item => expense_line_item, :index => index %> 
        <% end %> 
        <tr id="row_link" valign="top"> 
         <td valign="top" colspan="6"> 
          <%= link_to "Add new row",{:action => :add_row, :index => @expense.expense_line_items.size}, :remote => true %> 
         </td> 
        </tr> 
<% @expense.paid_line_items.each_with_index do |paid_line_item, index| %> 
        <%= render "paid_line_items", :paid_line_item => paid_line_item, :index => index %> 
        <% end %> 
        <tr id="to_row_link" valign="top"> 
        <td valign="top" colspan="6"> 
         <%= link_to "Add new row",{:action => :add_to_row, :index => @expense.paid_line_items.size}, :remote => true %> 
        </td> 
        </tr> 
<% end %> 

我很沮喪,在此先感謝。

+0

上面的代碼我沒有看到任何明顯的錯誤。控制器看起來沒問題,所以問題可能在於傳遞給更新的@params。如果沒有看到其他觀點,我們無法確定這些參數是什麼。你可以發佈他們嗎? (expense_line_item和paid_line_item的意見) – u2622 2012-02-11 03:00:05

+0

你可以在更新函數的開頭添加「raise params.inspect」並粘貼輸出嗎? – Rahul 2012-02-11 04:32:43

+0

謝謝@rahul我發現這個錯誤是由於我忘記在我的訂單項中添加的代碼。我必須爲我的訂單項添加一個隱藏的ID字段。感謝您的支持。 – Ravindra 2012-02-22 08:47:03

沙发
0
0

我發現了這個問題的解決方案。當我嘗試更新一個lineitem時,它將它作爲一個新的,因此我必須通過隱藏的lineitem_id更新操作。我有下面的代碼使用 :

<%= hidden_field_tag "expense[expense_line_items_attributes][#{index}][id]",expense_line_item.id%> 

,它爲我工作。

0
votes
answers
6 views
+10

SQLITE 3安裝錯誤

1

我總是嘗試通過命令行安裝東西。我最近安裝了Node(最新版本,版本號爲9.20)。我正在嘗試安裝/設置GECKO進行汽車交易。它需要安裝SQLite3。我正在關注的方向設置壁虎從這個鏈接:SQLITE 3安裝錯誤

https://www.youtube.com/watch?v=R68IwVujju8

和我在一步就是,你在命令行中鍵入:NPM =安裝

然而,它開始下載後,一些文件達到幾個「ERR!」聲明和切斷。下面是輸出:

(PS我也只用「故宮安裝」,我已經使用「故宮安裝sqlite3的」試過,都是給中端同樣的錯誤嘗試

C:用戶 fable187 下載壁虎穩定壁虎穩定> NPM安裝sqlite3的

[email protected] install C:Usersfable187Downloadsgekko-stablegekko-stable ode_modulessqlite3 node-pre-gyp install --fallback-to-build

節點預GYP ERR試圖下載(403):https://mapbox-node-binary.s3.amazonaws.com/sqlite3/v3.1.13/node-v59-win32-x64.tar.gz 節點預GYP ERR預建的二進制文件!找不到[email protected][email protected](node-v59 ABI)(回落到用node-gyp編譯的源代碼)

C: Users fable187 Downloads gekko-stable gekko-stable node_modules sqlite3>如果未定義npm_config_node_gyp(節點「C: Program Files nodejs node_modules npm bin node-gyp-bin .... node_modules node-gyp bin node-gyp.js「clean)else(node」「clean)

C: Users fable187 Downloads gekko-stable gekko-stable node_modules sqlite3>如果未定義npm_config_node_gyp(節點「C: Program Files nodejs node_modules npm bin node-gyp-bin .... node_modules node-gyp bin node-gyp.js」配置 - 下降到生成--module = C: Users fable187 Downloads gekko-stable gekko-stable node_modules sqlite3 lib binding node-v59-win32-x64 node_sqlite3.node --module_name = node_sqlite3 --module_path = C: Users fable187 Downloads gekko-stable gekko-stable node_modules sqlite3 lib binding node-v59-win32-x64 --msvs_version = 2017)else(node「」configure - fallback-to-build --module = C: Users fable187 Downloads gekko-stable gekko-stable node_modules sqlite3 lib binding node-v59-win32-x64 node_sqlite3.node --module_name = node_sqlite3 --module_path = C: Users fable187 Downloads gekko-stable gekko-stable node_modules sqlite3 lib binding node-v59-win32-x64 --msvs_version = 2017) gyp ERR!配置錯誤 gyp ERR!堆棧錯誤:找不到Python可執行文件「C: Users fable187 AppData Local Programs Python Python35 python.EXE」,您可以設置PYTHON env變量。 gyp ERR!在PythonFinder.failNoPython(C: Program Files nodejs node_modules npm node_modules node-gyp lib configure.js:483:19)上堆棧 gyp ERR!在PythonFinder中堆棧。 (C: Program Files nodejs node_modules npm node_modules node-gyp lib configure.js:508:16) gyp ERR!堆棧位於C: Program Files nodejs node_modules npm node_modules graceful-fs polyfills.js:284:29 gyp ERR!堆棧在FSReqWrap.oncomplete(fs.js:166:21) gyp ERR!系統Windows_NT 10.0.16299 gyp ERR!命令「C: Program Files nodejs node.exe」「C: Program Files nodejs node_modules npm node_modules node-gyp bin node-gyp.js」「configure」「--fallback-to 「--module = C: Users fable187 Downloads gekko-stable gekko-stable node_modules sqlite3 lib binding node-v59-win32-x64 node_sqlite3.node」「--module_name = node_sqlite3「」--module_path = C: Users fable187 Downloads gekko-stable gekko-stable node_modules sqlite3 lib binding node-v59-win32-x64「」--msvs_version = 2017「 gyp ERR ! cwd C: Users fable187 Downloads gekko-stable gekko-stable node_modules sqlite3 gyp ERR! node -v v9.2.0 gyp ERR! node-gyp -v v3.6.2 gyp ERR!不好 node-pre-gyp ERR!生成錯誤 node-pre-gyp ERR!堆棧錯誤:無法執行'node-gyp.cmd configure - 下降生成--module = C: Users fable187 Downloads gekko-stable gekko-stable node_modules sqlite3 lib binding node -v59-win32-x64 node_sqlite3.node --module_name = node_sqlite3 --module_path = C: Users fable187 Downloads gekko-stable gekko-stable node_modules sqlite3 lib binding node-v59-win32- x64 --msvs_version = 2017'(1) node-pre-gyp ERR!堆棧在ChildProcess。 (C: Users fable187 Downloads gekko-stable gekko-stable node_modules sqlite3 node_modules node-pre-gyp lib util compile.js:83:29) node-pre-gyp ERR!堆棧在ChildProcess.emit(events.js:159:13) node-pre-gyp ERR! stack at maybeClose(internal/child_process.js:943:16) node-pre-gyp ERR!堆棧在Process.ChildProcess._handle.onexit(internal/child_process.js:220:5) node-pre-gyp ERR!系統Windows_NT 10.0.16299 node-pre-gyp ERR!命令「C: Program Files nodejs node.exe」「C: Users fable187 Downloads gekko-stable gekko-stable node_modules sqlite3 node_modules node-pre-gyp bin node-pre- gyp「」install「」 - fallback-to-build「 node-pre-gyp ERR! cwd C: Users fable187 Downloads gekko-stable gekko-stable node_modules sqlite3 node-pre-gyp ERR! node -v v9.2.0 node-pre-gyp ERR! node-pre-gyp -v v0.6.38 node-pre-gyp ERR!不正確 未能執行'node-gyp.cmd configure - 下降到構建--module = C: Users fable187 Downloads gekko-stable gekko-stable node_modules sqlite3 lib binding node -v59-win32-x64 node_sqlite3.node --module_name = node_sqlite3 --module_path = C: Users fable187 Downloads gekko-stable gekko-stable node_modules sqlite3 lib binding node-v59-win32- x64 --msvs_version = 2017'(1) npm ERR!代碼ELIFECYCLE npm ERR! errno 1 npm ERR! [email protected]安裝:node-pre-gyp install --fallback-to-build npm ERR!退出狀態1 npm ERR! npm ERR!在[email protected]安裝腳本失敗。 npm ERR!這可能不是npm的問題。上面可能還有其他日誌記錄輸出。

npm ERR!此運行的完整日誌可在以下位置找到: npm ERR! C: Users 用戶fable187 應用程序數據漫遊 NPM-cache_logs 2017-12-03T08_00_31_371Z-的debug.log

C: Users 用戶fable187 下載壁虎穩定壁虎穩定>

沙发
0
0

SQLITE3尚未與NodeJS V9.2.0兼容(查看問題:https://github.com/mapbox/node-sqlite3/issues/902)。

您需要將您的nodeJS版本降級到V8.9.3。

提示:要伊斯利更改節點版本,你可以用NVM的Windows https://github.com/coreybutler/nvm-windows

Python的問題:這是由於「故宮安裝」,這是試圖編譯(與Python)位於源節點-V59-Win32的x64.tar.gz。由於Python未在您的計算機上安裝,因此出現錯誤。

0
votes
answers
6 views
+10

問題自動將CSV導入RSQLite數據庫

1

我試圖自動將CSV文件寫入RSQLite數據庫。問題自動將CSV導入RSQLite數據庫

我這樣做是通過索引csvFiles來實現的,這是存儲在環境中的data.frame變量列表。

我似乎無法找出爲什麼當我手動輸入,但不是當我試圖指數namevalue領域我dbWriteTable()代碼工作完全正常。

### CREATE DB ### 
mydb <- dbConnect(RSQLite::SQLite(),"") 

# FOR LOOP TO BATCH IMPORT DATA INTO DATABASE 
for (i in 1:length(csvFiles)) { 
    dbWriteTable(mydb,name = csvFiles[i], value = csvFiles[i], overwrite=T) 
    i=i+1 
} 

# EXAMPLE CODE THAT SUCCESSFULLY MANUAL IMPORTS INTO mydb 
dbWriteTable(mydb,"DEPARTMENT",DEPARTMENT) 

當我運行的循環以上,我給出的這個錯誤:

"Error in file(file, "rt") : cannot open the connection 
In addition: Warning message: 
In file(file, "rt") : 
    cannot open file 'DEPARTMENT': No such file or directory 

# note that 'DEPARTMENT' is the value of csvFiles[1] 

這裏是csvFilesdput輸出:

c("DEPARTMENT", "EMPLOYEE_PHONE", "PRODUCT", "EMPLOYEE", "SALES_ORDER_LINE", 
"SALES_ORDER", "CUSTOMER", "INVOICES", "STOCK_TOTAL") 

我研究這個錯誤,它似乎與我的工作目錄有關;然而,我並不真正理解要改變什麼,因爲我甚至不試圖從我的電腦上操作文件,只是我的環境中已經有了data.frames。

請幫忙!

+0

你有'值= csvFiles [I]'用大寫'I'?你也不需要'i = i + 1'。多說一點,我們需要像'dput(head(csvFiles))'這樣的東西。 – vaettchen

+0

Hi @vaettchen,感謝您的支持。帶有大寫字母'I'的拼寫錯誤是我瀏覽器中的一個修正。這不是實際的代碼。任何想法爲什麼我的for循環不工作? – Morgan

+0

我想你的變量'csvFiles'有些問題。如果你可以發佈'dput()'出來?看起來不像我的工作目錄錯誤。 csv文件沒有擴展名(沒有'DEPARTMENT.csv'? – vaettchen

沙发
0
0

只需使用get()說法是要傳遞一個字符串值,當一個數據幀對象的預期。注意您的手動版沒有DEPARTMENT引用

# FOR LOOP TO BATCH IMPORT DATA INTO DATABASE 
for (i in seq_along(csvFiles)) { 
    dbWriteTable(mydb,name = csvFiles[i], value = get(csvFiles[i]), overwrite=T) 
} 

另外,考慮建立一個名爲dataframes的列表,mget和循環的逐元素列表的名稱和DF元素之間用Map

dfs <- mget(csvfiles) 

output <- Map(function(n, d) dbWriteTable(mydb, name = n, value = d, overwrite=T), names(dfs), dfs) 
+0

這正是我尋找的信息,謝謝! – Morgan

0
votes
answers
6 views
+10

來自SQLite的Java數據解析錯誤

0

我嘗試從SQLite數據庫檢索數據時出現錯誤。來自SQLite的Java數據解析錯誤

enter image description here

它檢索數據的第一行到表,但是當該日期是有它給出以下所示的錯誤。

這是我得到錯誤的代碼。

try { 
     con = DriverManager.getConnection("jdbc:sqlite:Rooms.db"); 
     con.setAutoCommit(false); 

     pst = con.prepareStatement("Select * from Standard"); 
     rs = pst.executeQuery(); 


     while (rs.next()) 
     { 
      LocalDate sD = null; 
      LocalDate eD = null; 
      if (rs.getDate(6) != null) 
      { 
       sD = Conv(rs.getDate(6)); 
       eD = Conv(rs.getDate(7)); 
       System.out.println(sD + " " + eD); 

       if (chkIn.getValue().isBefore(sD) == true && chkOut.getValue().isBefore(eD) == true) 
       { 
        datas.add(new StandardRoomList(rs.getString(1), rs.getString(2) , "£" + (rs.getInt(3)*pri), "" + rs.getInt(4))); 
       } 

      } 

這是我收到的錯誤:

Caused by: java.text.ParseException: Unparseable date: "2017-11-17" does not match (p{Nd}++)Q-E(p{Nd}++)Q-E(p{Nd}++)Q E(p{Nd}++)Q:E(p{Nd}++)Q:E(p{Nd}++)Q.E(p{Nd}++) 
at org.sqlite.date.FastDateParser.parse(FastDateParser.java:299) 
at org.sqlite.date.FastDateFormat.parse(FastDateFormat.java:490) 
at org.sqlite.jdbc3.JDBC3ResultSet.getDate(JDBC3ResultSet.java:293) 
... 64 more 
沙发
0
1

錯誤消息的模式意味着JDBC驅動程序期望的格式爲「YYYY-MM-DD HH的字符串:MM: SS.milliseconds」。這與數據庫中的日期表示不兼容。

這裏的根本問題是,SQLite不支持的日期/時間/時間戳類型:

您似乎已編碼的日期爲你的數據庫字符串,它似乎JDBC驅動程序試圖使用內置啓發式將這些字符串值轉換爲日期/時間值。但那是失敗的。

我建議使用getString從結果集中檢索值,然後使用Java的內置日期/時間類顯式地執行字符串 - >日期轉換。

另一種方法是使用org.sqlite.SQLiteConfig對象更改JDBC驅動程序的默認日期時間格式。但是,除了源代碼之外,我找不到這種方法的任何文檔!

0
votes
answers
6 views
+10

如何使用SQLiteCommand進行插入查詢?

1

我有一段代碼,對我來說總是不起作用。有時候它會返回有關數據庫鎖定的錯誤,有時還會涉及連接。如何使用SQLiteCommand進行插入查詢?

這是代碼:

string sql = String.Format("insert into {0}({1}) values({2});", tableName, columns, values); 
SQLiteConnection myConn = null; 
try 
{ 
    myConn = new SQLiteConnection(dbConnection); 
    myConn.Open(); 

    using(SQLiteCommand sqCommand = new SQLiteCommand(sql)) 
    { 
     sqCommand.CommandText = sql; 
     int rows = sqCommand.ExecuteNonQuery(); 
     return !(rows == 0); 
    } 
} 
finally 
{ 
    myConn.Close(); 
} 

我做什麼了?

錯誤是:

No connection associated with this command

в System.Data.SQLite.SQLiteCommand.InitializeForReader() 
    в System.Data.SQLite.SQLiteCommand.ExecuteReader(CommandBehavior 

behavior) в System.Data.SQLite.SQLiteCommand.ExecuteNonQuery(CommandBehavior behavior) в System.Data.SQLite.SQLiteCommand.ExecuteNonQuery()

在行:

int rows = sqCommand.ExecuteNonQuery(); 
+1

個人而言,我會改變你的代碼的'finally'部分是一個'catch',你不需要調用'myConn.Close()'您目前是'使用的內(){}'所以它會自動處理該對象,當你離開使用代碼塊..也檢出這篇文章關於Sqlite鎖定https://stackoverflow.com/questions/1800174/how-do-i-stop-the -the-database-file-is-locked-exception – MethodMan

+1

好吧,試試吧,但不要以爲這是理由。我現在會發布錯誤 – OPV

+0

你的錯誤似乎與當前的代碼無關......你並沒有在那個Insert語句中調用ExecuteReader ..也試着做一個sqlcommand.Commit()通過你所有的代碼進行搜索找到你在調用'ExecuteReader'的地方。 – MethodMan

沙发
0
2

你忘了assignConnectionCommand

No connection associated with this command

using(SQLiteCommand sqCommand = new SQLiteCommand(sql)) 

應該TH我們是:

using(SQLiteCommand sqCommand = new SQLiteCommand(sql, myConn)) 
+0

它仍然給我一個錯誤:當我執行此操作時,「數據庫被鎖定」 – OPV

+0

在行'int rows = sqCommand.ExecuteNonQuery();' – OPV

+0

我會標記,但它是問題的一部分。 – OPV