sqlite 라이브러리는 설치된 데이터베이스 파일을 업데이트 할 수 없습니다.

Ravenspoint

설치 프로그램이 배치 한 파일의 데이터베이스 인 sqlite3 명령 줄 도구를 사용하여 다음과 같이 열고 읽고 업데이트 할 수 있습니다.

C:\ProgramData\spectronix\oximeter>C:\Users\James\code\bin\sqlite3 spectrumalpha.dat
SQLite version 3.16.2 2017-01-06 16:32:41
Enter ".help" for usage hints.
sqlite> .schema
CREATE TABLE run ( run INTEGER PRIMARY KEY, timestamp, desc );
CREATE TABLE distance ( hwid, distance );
CREATE TABLE spectrum ( run, timestamp, hwid, distance, data );
CREATE TABLE waveDescription ( run, timestamp, hwid );
CREATE TABLE wave ( wave, idx, data );
sqlite> select desc from run where run is 5;
update from sqlite3 tool
sqlite> UPDATE run SET desc='update #2 from sqlite3 tool' WHERE run IS 5;
sqlite> select desc from run where run is 5;
update #2 from sqlite3 tool

하지만이 코드를 실행하면

#include <iostream>
#include "sqlite3.h"

int main()
{
    sqlite3 * db;
    sqlite3_stmt *st = 0;
    int ret;
    char const * tail = 0;

    ret = sqlite3_open("C:/ProgramData/spectronix/oximeter/spectrumalpha.dat",&db);

    std::cout << "working with db in "
        << sqlite3_db_filename( db, "main" ) << "\n";

    // read initial value
    ret = sqlite3_prepare_v2(
              db,
              "SELECT desc FROM run WHERE run IS 5;"
              , -1, &st, &tail );
    if( ret != SQLITE_OK )
        throw std::runtime_error("sqlite first read");
    sqlite3_step( st );
    std:: cout << "first read is " << sqlite3_column_text(st, 0) << "\n";
    sqlite3_finalize( st );

    return 0;
}

출력은 이전 버전의 데이터를 보여줍니다.

working with db in C:\ProgramData\spectronix\oximeter\spectrumalpha.dat
first read is test4

또 다른 이상한 점은 라이브러리 코드가 데이터 업데이트를 거부한다는 것입니다.

#include <iostream>
#include "sqlite3.h"

    int main()
    {
        sqlite3 * db;
        sqlite3_stmt *st = 0;
        int ret;
        char const * tail = 0;

        ret = sqlite3_open("C:/ProgramData/spectronix/oximeter/spectrumalpha.dat",&db);

        std::cout << "working with db in "
            << sqlite3_db_filename( db, "main" ) << "\n";

        // read initial value
        ret = sqlite3_prepare_v2(
                  db,
                  "SELECT desc FROM run WHERE run IS 5;"
                  , -1, &st, &tail );
        if( ret != SQLITE_OK )
            throw std::runtime_error("sqlite first read");
        sqlite3_step( st );
        std:: cout << "first read is " << sqlite3_column_text(st, 0) << "\n";
        sqlite3_finalize( st );

        // update value
        ret = sqlite3_prepare_v2(
                  db,
                  "UPDATE run SET desc = 'new_value' WHERE run IS 5;"
                  , -1, &st, &tail );
        if( ret != SQLITE_OK )
            throw std::runtime_error("sqlite update error");
        sqlite3_finalize( st );
        std::cout << sqlite3_changes( db ) << " rows updated\n";

        return 0;
    }

출력

working with db in C:\ProgramData\spectronix\oximeter\spectrumalpha.dat
first read is test4
0 rows updated

데이터베이스를 응용 프로그램의 작업 디렉토리로 이동하여 데이터베이스를 여는 호출을

ret = sqlite3_open("spectrumalpha.dat",&db);

그러나 같은 문제가 발생합니다.

그래서 마지막으로 데이터베이스를 삭제하고 처음부터 다시 생성했습니다. 그것이 무엇이든간에 문제는 사라졌습니다! 누구든지 그것이 재발하는 경우에 대해 어떤 아이디어가 있습니까?

다음날 설치 프로그램사용 하여 데이터베이스 파일을 작성한 후 문제가 반환되었습니다 .

Ravenspoint

설치 프로그램은 일부 사용자에게는 쓰기 권한이 있고 다른 사용자에게는 읽기 전용으로 파일을 생성했습니다. 유닉스의 전형적인 걸림돌이지만 윈도우에서 다루어야하는 것에 익숙하지 않습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

iOS에서 sqlite3 데이터베이스 테이블을 업데이트 할 수 없습니다.

분류에서Dev

데이터베이스 우선에서 Entity Framework 6을 사용하여 SQLite 데이터베이스 파일을 업데이트 할 수 있습니까?

분류에서Dev

Android-SQLite 데이터베이스에서 데이터를 업데이트 할 수 없습니다.

분류에서Dev

데이터베이스에서 행을 업데이트 할 수 없습니다.

분류에서Dev

SQLIte 데이터베이스는 항목을 삭제할 수 없습니다

분류에서Dev

SQLite 데이터베이스에서 행을 삭제할 수 없습니다.

분류에서Dev

sqlite 데이터베이스를 삭제할 수 없습니다.

분류에서Dev

데이터베이스 sqlite를 실행할 수 없습니다.

분류에서Dev

sqlite 데이터베이스의 값을 어떻게 업데이트 할 수 있습니까?

분류에서Dev

sqlite 데이터베이스의 레코드를 업데이트 할 수 없습니다.

분류에서Dev

IronPython SQLite3 OperationalError : 데이터베이스 파일을 열 수 없습니다.

분류에서Dev

SQLite에서 값을 업데이트 할 수 없습니다.

분류에서Dev

Debian을 설치 한 후 업데이트 할 수 없습니다.

분류에서Dev

SQLite 데이터베이스에서 동적으로 테이블 이름을 할당 할 수 없습니다.

분류에서Dev

Netbeans는 12.04로 업데이트 된 이후 C ++에서 라이브러리를 호출 할 수 없습니다.

분류에서Dev

SQLite 데이터베이스에서 읽을 수 없습니다.

분류에서Dev

파이썬에서 데이터베이스를 업데이트 할 수 없습니다.

분류에서Dev

특정 사용자에 따라 데이터베이스 행을 업데이트 할 수 없습니다.

분류에서Dev

특정 사용자에 따라 데이터베이스 행을 업데이트 할 수 없습니다.

분류에서Dev

설치시 SQLite 데이터베이스에 액세스 할 수 없음

분류에서Dev

데이터베이스 php / mysql에서 재고 수량을 업데이트 할 수 없습니다.

분류에서Dev

mdf 파일을 데이터베이스로 첨부 할 수 없습니다.

분류에서Dev

데이터베이스에서 알파벳 비밀번호를 업데이트 할 수 없습니다.

분류에서Dev

C에서 프로그램 데이터베이스를 닫을 때 업데이트 할 수 없습니다.

분류에서Dev

laravel 5.8은 데이터베이스에서 값을 업데이트 할 수 없습니다

분류에서Dev

JSON 구문 분석 오류-핵심 데이터베이스 값을 업데이트 할 수 없습니다.

분류에서Dev

양식 필드에서 데이터베이스 항목을 업데이트 할 수 없습니다.

분류에서Dev

Rails 콘솔에서 데이터베이스 열 값을 업데이트 할 수 없습니다.

분류에서Dev

ASP.NET : 데이터베이스에서 읽은 값을 업데이트 할 수 없습니다.

Related 관련 기사

  1. 1

    iOS에서 sqlite3 데이터베이스 테이블을 업데이트 할 수 없습니다.

  2. 2

    데이터베이스 우선에서 Entity Framework 6을 사용하여 SQLite 데이터베이스 파일을 업데이트 할 수 있습니까?

  3. 3

    Android-SQLite 데이터베이스에서 데이터를 업데이트 할 수 없습니다.

  4. 4

    데이터베이스에서 행을 업데이트 할 수 없습니다.

  5. 5

    SQLIte 데이터베이스는 항목을 삭제할 수 없습니다

  6. 6

    SQLite 데이터베이스에서 행을 삭제할 수 없습니다.

  7. 7

    sqlite 데이터베이스를 삭제할 수 없습니다.

  8. 8

    데이터베이스 sqlite를 실행할 수 없습니다.

  9. 9

    sqlite 데이터베이스의 값을 어떻게 업데이트 할 수 있습니까?

  10. 10

    sqlite 데이터베이스의 레코드를 업데이트 할 수 없습니다.

  11. 11

    IronPython SQLite3 OperationalError : 데이터베이스 파일을 열 수 없습니다.

  12. 12

    SQLite에서 값을 업데이트 할 수 없습니다.

  13. 13

    Debian을 설치 한 후 업데이트 할 수 없습니다.

  14. 14

    SQLite 데이터베이스에서 동적으로 테이블 이름을 할당 할 수 없습니다.

  15. 15

    Netbeans는 12.04로 업데이트 된 이후 C ++에서 라이브러리를 호출 할 수 없습니다.

  16. 16

    SQLite 데이터베이스에서 읽을 수 없습니다.

  17. 17

    파이썬에서 데이터베이스를 업데이트 할 수 없습니다.

  18. 18

    특정 사용자에 따라 데이터베이스 행을 업데이트 할 수 없습니다.

  19. 19

    특정 사용자에 따라 데이터베이스 행을 업데이트 할 수 없습니다.

  20. 20

    설치시 SQLite 데이터베이스에 액세스 할 수 없음

  21. 21

    데이터베이스 php / mysql에서 재고 수량을 업데이트 할 수 없습니다.

  22. 22

    mdf 파일을 데이터베이스로 첨부 할 수 없습니다.

  23. 23

    데이터베이스에서 알파벳 비밀번호를 업데이트 할 수 없습니다.

  24. 24

    C에서 프로그램 데이터베이스를 닫을 때 업데이트 할 수 없습니다.

  25. 25

    laravel 5.8은 데이터베이스에서 값을 업데이트 할 수 없습니다

  26. 26

    JSON 구문 분석 오류-핵심 데이터베이스 값을 업데이트 할 수 없습니다.

  27. 27

    양식 필드에서 데이터베이스 항목을 업데이트 할 수 없습니다.

  28. 28

    Rails 콘솔에서 데이터베이스 열 값을 업데이트 할 수 없습니다.

  29. 29

    ASP.NET : 데이터베이스에서 읽은 값을 업데이트 할 수 없습니다.

뜨겁다태그

보관