Score:0

FBExport - ใช้บน Ubuntu

ธง tr

TL; DR : ใช้ FBExport บน Ubuntu อย่างไร / วิธีส่งออกผลการสืบค้น Firebird เป็นไฟล์ csv

ฉันต้องการส่งออกผลลัพธ์การค้นหาจากฐานข้อมูล firebird เป็นไฟล์ csv บน Windows ฉันทำงานที่คล้ายกันโดยใช้ FBExport

น่าเสียดายที่ฉันไม่รู้ว่าใช้เครื่องมือนี้บน Ubuntu

ฉันดาวน์โหลดแพ็คจาก http://www.firebirdfaq.org/fbexport.php

เมื่อฉันลอง run ./fbexport ฉันพบข้อผิดพลาด:

./fbexport: เกิดข้อผิดพลาดขณะโหลดไลบรารีที่ใช้ร่วมกัน: libfbclient.so.2: ไม่สามารถเปิดไฟล์วัตถุที่ใช้ร่วมกัน: ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว

ฉันลองคอมไพล์แพ็คด้วย

ครั้งแรกที่ฉันเปลี่ยนไป ทำ ไฟล์จาก:

#################################################### #############################
.SUFFIXES: .o .cpp

OBJECTS_FBE=fbexport/ParseArgs.o fbexport/FBExport.o fbexport/cli-main.o
OBJECTS_FBC=fbcopy/args.o fbcopy/fbcopy.o fbcopy/TableDependency.o fbcopy/main.o

# แฟล็กคอมไพเลอร์ & ตัวเชื่อมโยง
COMPILE_FLAGS=-O1 -DIBPP_LINUX -DIBPP_GCC -Iibpp
LINK_FLAGS=-pthread -lfbclient

#COMPILE_FLAGS=-O1 -DIBPP_WINDOWS -DIBPP_GCC -Iibpp
#LINK_FLAGS=

ทั้งหมด: exe/fbcopy exe/fbexport

exe/fbexport: $(OBJECTS_FBE) ibpp/all_in_one.o
        g++ $(LINK_FLAGS) ibpp/all_in_one.o $(OBJECTS_FBE) -oexe/fbexport

exe/fbcopy: $(OBJECTS_FBC) ibpp/all_in_one.o
        g++ $(LINK_FLAGS) ibpp/all_in_one.o $(OBJECTS_FBC) -oexe/fbcopy

#ลินุกซ์เท่านั้น
# FB2.0: g++ -pthread -lfbclient $(OBJECTS) -o$(EXENAME)
# FB1.5: g++ -lfbclient $(OBJECTS) -o$(EXENAME)
# FB1.0: g++ -lgds -lcrypt -lm $(OBJECTS) -o$(EXENAME)

ติดตั้ง:
        ติดตั้ง exe/fbcopy /usr/bin/fbcopy
        ติดตั้ง exe/fbexport /usr/bin/fbexport

.cpp.o:
        g++ -c $(COMPILE_FLAGS) -o $@ $<

ทำความสะอาด:
        rm -f fbcopy/*.o
        rm -f ibpp/all_in_one.o
        rm -f exe/fbcopy*
        rm -f fbexport/*.o
        rm -f exe/fbexport*

#อฟ

ถึง:

#################################################### #############################
.SUFFIXES: .o .cpp

OBJECTS_FBE=fbexport/ParseArgs.o fbexport/FBExport.o fbexport/cli-main.o

# แฟล็กคอมไพเลอร์ & ตัวเชื่อมโยง
COMPILE_FLAGS=-O1 -DIBPP_LINUX -DIBPP_GCC -Iibpp
LINK_FLAGS=-pthread -lfbclient

#COMPILE_FLAGS=-O1 -DIBPP_WINDOWS -DIBPP_GCC -Iibpp
#LINK_FLAGS=

ทั้งหมด: exe/fbexport

exe/fbexport: $(OBJECTS_FBE) ibpp/all_in_one.o
        g++ $(LINK_FLAGS) ibpp/all_in_one.o $(OBJECTS_FBE) -oexe/fbexport

#ลินุกซ์เท่านั้น
# FB2.0: g++ -pthread -lfbclient $(OBJECTS) -o$(EXENAME)
# FB1.5: g++ -lfbclient $(OBJECTS) -o$(EXENAME)
# FB1.0: g++ -lgds -lcrypt -lm $(OBJECTS) -o$(EXENAME)

ติดตั้ง:
        ติดตั้ง exe/fbexport /usr/bin/fbexport

.cpp.o:
        g++ -c $(COMPILE_FLAGS) -o $@ $<

ทำความสะอาด:
        rm -f ibpp/all_in_one.o
        rm -f fbexport/*.o
        rm -f exe/fbexport*

#อฟ

(เพราะผมชอบคอมไพล์เฉพาะ FBExport (ไม่รวม FBCopy))

หลังจากการเปลี่ยนแปลงนี้ ฉันลองเรียกใช้ ทำ ในโฟลเดอร์หลัก

เอาท์พุต:

user@apiserver:~/fbexport-1.90$ ทำ
g++ -c -O1 -DIBPP_LINUX -DIBPP_GCC -Iibpp -o fbexport/ParseArgs.o fbexport/ParseArgs.cpp
g++ -c -O1 -DIBPP_LINUX -DIBPP_GCC -Iibpp -o fbexport/FBExport.o fbexport/FBExport.cpp
fbexport/FBExport.cpp: ในฟังก์ชันสมาชิก âstd::string FBExport::CreateHumanString(IBPP::Statement&, int)â:
fbexport/FBExport.cpp:318:29: คำเตือน: รูปแบบ â%ldâ ต้องการอาร์กิวเมนต์ประเภท âlong intâ แต่อาร์กิวเมนต์ 3 มีประเภท âintâ [-Wformat=]
  318 | sprintf(str, "%ld", x);
      | ~~^~
      | | |
      | | นานาชาติ
      | นาน int
      | %d
fbexport/FBExport.cpp:40:21: คำเตือน: รูปแบบ â%lliâ ต้องการอาร์กิวเมนต์ประเภท âlong long intâ แต่อาร์กิวเมนต์ 3 มีประเภท âint64_tâ {aka âlong intâ} [-Wformat=]
   40 | #กำหนดรูปแบบ INT64 "%lli"
      | ^~~~~~~
fbexport/FBExport.cpp:351:26: หมายเหตุ: ในการขยายมาโคร âINT64FORMATâ
  351 | sprintf(str, INT64FORMAT, int64val);
      | ^~~~~~~~~~~
fbexport/FBExport.cpp:40:25: หมายเหตุ: กำหนดรูปแบบสตริงที่นี่
   40 | #กำหนดรูปแบบ INT64 "%lli"
      | ~~~^
      | |
      | ยาวนาน int
      | %li
fbexport/FBExport.cpp: ในฟังก์ชันสมาชิก âbool FBExport::CreateString(IBPP::Statement&, int, std::string&)â:
fbexport/FBExport.cpp:429:29: คำเตือน: รูปแบบ â%ldâ ต้องการอาร์กิวเมนต์ประเภท âlong intâ แต่อาร์กิวเมนต์ 3 มีประเภท âintâ [-Wformat=]
  429 | sprintf(str, "%ld", x);
      | ~~^~
      | | |
      | | นานาชาติ
      | นาน int
      | %d
fbexport/FBExport.cpp:435:29: คำเตือน: รูปแบบ â%ldâ ต้องการอาร์กิวเมนต์ประเภท âlong intâ แต่อาร์กิวเมนต์ 3 มีประเภท âintâ [-Wformat=]
  435 | sprintf(str, "%ld", d.GetDate());
      | ~~^ ~~~~~~~~~~~~
      | | |
      | int ยาว
      | %d
fbexport/FBExport.cpp:440:29: คำเตือน: รูปแบบ â%ldâ ต้องการอาร์กิวเมนต์ประเภท âlong intâ แต่อาร์กิวเมนต์ 3 มีประเภท âintâ [-Wformat=]
  440 | sprintf(str, "%ld", t.GetTime());
      | ~~^ ~~~~~~~~~~~~
      | | |
      | int ยาว
      | %d
fbexport/FBExport.cpp:40:21: คำเตือน: รูปแบบ â%lliâ ต้องการอาร์กิวเมนต์ประเภท âlong long intâ แต่อาร์กิวเมนต์ 3 มีประเภท âint64_tâ {aka âlong intâ} [-Wformat=]
   40 | #กำหนดรูปแบบ INT64 "%lli"
      | ^~~~~~~
fbexport/FBExport.cpp:462:26: หมายเหตุ: ในการขยายมาโคร âINT64FORMATâ
  462 | sprintf(str, INT64FORMAT, int64val);
      | ^~~~~~~~~~~
fbexport/FBExport.cpp:40:25: หมายเหตุ: กำหนดรูปแบบสตริงที่นี่
   40 | #กำหนดรูปแบบ INT64 "%lli"
      | ~~~^
      | |
      | ยาวนาน int
      | %li
fbexport/FBExport.cpp: ในฟังก์ชันสมาชิก âint FBExport::Export(IBPP::Statement&, FILE*)â:
fbexport/FBExport.cpp:487:18: คำเตือน: ISO C++17 ไม่อนุญาตให้ใช้ตัวระบุคลาสพื้นที่เก็บข้อมูล âregisterâ [-Wregister]
  487 | ลงทะเบียน int fc = st->คอลัมน์ ();
      | ^~
fbexport/FBExport.cpp:491:23: คำเตือน: ISO C++17 ไม่อนุญาตให้ใช้ตัวระบุคลาสพื้นที่เก็บข้อมูล âregisterâ [-Wregister]
  491 | สำหรับ (ลงทะเบียน int i=1; i<=fc; i++)
      | ^
fbexport/FBExport.cpp:505:27: คำเตือน: ISO C++17 ไม่อนุญาตให้ใช้ตัวระบุคลาสพื้นที่เก็บข้อมูล âregisterâ [-Wregister]
  505 | สำหรับ (register int i=1; i<=fc; i++) // ... ส่งออกฟิลด์ทั้งหมดไปยังไฟล์
      | ^
fbexport/FBExport.cpp: ในฟังก์ชันสมาชิก âint FBExport::ExportHuman(IBPP::Statement&, FILE*)â:
fbexport/FBExport.cpp:829:18: คำเตือน: ISO C++17 ไม่อนุญาตให้ใช้ตัวระบุคลาสพื้นที่เก็บข้อมูล âregisterâ [-Wregister]
  829 | ลงทะเบียน int fc = st->คอลัมน์ ();
      | ^~
fbexport/FBExport.cpp:835:27: คำเตือน: ISO C++17 ไม่อนุญาตให้ใช้ตัวระบุคลาสพื้นที่เก็บข้อมูล âregisterâ [-Wregister]
  835 | สำหรับ (register int i=1; i<=fc; i++) // เอาต์พุตส่วนหัว CSV
      | ^
fbexport/FBExport.cpp:847:27: คำเตือน: ISO C++17 ไม่อนุญาตให้ใช้ตัวระบุคลาสพื้นที่เก็บข้อมูล âregisterâ [-Wregister]
  847 | สำหรับ (register int i=1; i<=fc; i++) // ... ส่งออกฟิลด์ทั้งหมดไปยังไฟล์
      | ^
fbexport/FBExport.cpp:860:27: คำเตือน: ISO C++17 ไม่อนุญาตให้ใช้ตัวระบุคลาสพื้นที่เก็บข้อมูล âregisterâ [-Wregister]
  860 | สำหรับ (register int i=1; i<=fc; i++) // เอาต์พุตส่วนหัว CSV
      | ^
fbexport/FBExport.cpp:875:27: คำเตือน: ISO C++17 ไม่อนุญาตให้ใช้ตัวระบุคลาสพื้นที่เก็บข้อมูล âregisterâ [-Wregister]
  875 | สำหรับ (register int i=1; i<=fc; i++) // ... ส่งออกฟิลด์ทั้งหมดไปยังไฟล์
      | ^
fbexport/FBExport.cpp: ในฟังก์ชัน âint statement_length(FILE*)â:
fbexport/FBExport.cpp:1335:24: คำเตือน: ISO C++17 ไม่อนุญาตให้ใช้ตัวระบุคลาสพื้นที่เก็บข้อมูล âregisterâ [-Wregister]
 1335 | ลงทะเบียน int c = 0, tmp = 0;
      | ^
fbexport/FBExport.cpp:1335:31: คำเตือน: ISO C++17 ไม่อนุญาตให้ใช้ตัวระบุคลาสพื้นที่เก็บข้อมูล âregisterâ [-Wregister]
 1335 | ลงทะเบียน int c = 0, tmp = 0;
      | ^~~
fbexport/FBExport.cpp:1336:24: คำเตือน: ISO C++17 ไม่อนุญาตให้ใช้ตัวระบุคลาสพื้นที่เก็บข้อมูล âregisterâ [-Wregister]
 1336 | ลงทะเบียน int l = 0;
      | ^
fbexport/FBExport.cpp: ในฟังก์ชัน âchar* read_statement(char*, int, FILE*)â:
fbexport/FBExport.cpp:1376:24: คำเตือน: ISO C++17 ไม่อนุญาตให้ใช้ตัวระบุคลาสพื้นที่เก็บข้อมูล âregisterâ [-Wregister]
 1376 | ลงทะเบียน int c = 0, tmp = 0;
      | ^
fbexport/FBExport.cpp:1376:31: คำเตือน: ISO C++17 ไม่อนุญาตให้ใช้ตัวระบุคลาสพื้นที่เก็บข้อมูล âregisterâ [-Wregister]
 1376 | ลงทะเบียน int c = 0, tmp = 0;
      | ^~~
fbexport/FBExport.cpp:1377:25: คำเตือน: ISO C++17 ไม่อนุญาตให้ใช้ตัวระบุคลาสพื้นที่เก็บข้อมูล âregisterâ [-Wregister]
 1377 | ลงทะเบียนถ่าน * P;
      | ^
fbexport/FBExport.cpp: ในฟังก์ชันสมาชิก âstd::string FBExport::CreateHumanString(IBPP::Statement&, int)â:
fbexport/FBExport.cpp:339:17: คำเตือน: ละเว้นค่าส่งคืนของ âchar* gcvt(double, int, char*)â ประกาศด้วยแอตทริบิวต์ âwarn_unused_resultâ [-Wunused-result]
  339 | gcvt(fval, 19, str);
      | ~~~^~~~~~~~~~~~~~~~
fbexport/FBExport.cpp:345:17: คำเตือน: ละเว้นค่าส่งคืนของ âchar* gcvt(double, int, char*)â ประกาศด้วยแอตทริบิวต์ âwarn_unused_resultâ [-Wunused-result]
  345 | gcvt(dval, 19, str);
      | ~~~^~~~~~~~~~~~~~~~
fbexport/FBExport.cpp: ในฟังก์ชันสมาชิก âbool FBExport::CreateString(IBPP::Statement&, int, std::string&)â:
fbexport/FBExport.cpp:452:17: คำเตือน: ละเว้นค่าส่งคืนของ âchar* gcvt(double, int, char*)â ประกาศด้วยแอตทริบิวต์ âwarn_unused_resultâ [-Wunused-result]
  452 | gcvt(fval, 19, str);
      | ~~~^~~~~~~~~~~~~~~~
fbexport/FBExport.cpp:457:17: คำเตือน: ละเว้นค่าส่งคืนของ âchar* gcvt(double, int, char*)â ประกาศด้วยแอตทริบิวต์ âwarn_unused_resultâ [-Wunused-result]
  457 | gcvt(dval, 19, str);
      | ~~~^~~~~~~~~~~~~~~~
fbexport/FBExport.cpp: ในฟังก์ชันสมาชิก âint FBExport::Import(IBPP::Statement&, FILE*)â:
fbexport/FBExport.cpp:706:26: คำเตือน: ละเว้นค่าส่งคืนของ âsize_t fread(void*, size_t, size_t, FILE*)â ประกาศด้วยแอตทริบิวต์ âwarn_unused_resultâ [-Wunused-result]
  706 | fread(หนัง, ขนาด, 1, fp);
      | ~~~~~^~~~~~~~~~~~~~~~~~~
fbexport/FBExport.cpp: ในฟังก์ชันสมาชิก âint FBExport::Init(Arguments*)â:
fbexport/FBExport.cpp:1211:41: คำเตือน: â__builtin___sprintf_chkâ อาจเขียน nul สิ้นสุดหลังจากสิ้นสุดปลายทาง [-Wformat-overflow=]
 1211 | sprintf(จำนวน, "%d", i+1);
      | ^
ในไฟล์รวมจาก /usr/include/stdio.h:888,
                 จาก /usr/include/c++/11/cstdio:42,
                 จาก /usr/include/c++/11/ext/string_conversions.h:43
                 จาก /usr/include/c++/11/bits/basic_string.h:6606
                 จาก /usr/include/c++/11/string:55,
                 จาก ibpp/ibpp.h:91,
                 จาก fbexport/FBExport.cpp:44:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:38:34: หมายเหตุ: â__builtin___sprintf_chkâ เอาต์พุตระหว่าง 2 ถึง 11 ไบต์ไปยังปลายทางขนาด 10
   38 | กลับ __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
      | ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~
   39 | __glibc_objsize (__s), __fmt,
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   40 | __va_arg_pack());
      | ~~~~~~~~~~~~~~~~~~
g++ -c -O1 -DIBPP_LINUX -DIBPP_GCC -Iibpp -o fbexport/cli-main.o fbexport/cli-main.cpp
g++ -c -O1 -DIBPP_LINUX -DIBPP_GCC -Iibpp -o ibpp/all_in_one.o ibpp/all_in_one.cpp
g++ -pthread -lfbclient ibpp/all_in_one.o fbexport/ParseArgs.o fbexport/FBExport.o fbexport/cli-main.o -oexe/fbexport

ฉันจะทำอย่างไรในกรณีนี้

ความนับถือ โทมัส

yagmoth555 avatar
cn flag
สวัสดี เพื่อเป็นการแก้ปัญหา คุณสามารถคัดลอกฐานข้อมูล firebird ไปยังเครื่อง Windows เพื่อทำงานได้หรือไม่ ฉันถามเพราะฉันรู้ว่าฐานข้อมูล firebird เป็นไฟล์เดียว
tr flag
@ yagmoth555 - ขอบคุณสำหรับการตอบกลับของคุณ ฉันไม่สามารถทำสิ่งนี้ได้ ฐานข้อมูลมีขนาดใหญ่มาก ฉันต้องการข้อมูลประมาณ 1% เท่านั้น

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา