Ini ialah arahan odb yang boleh dijalankan dalam penyedia pengehosan percuma OnWorks menggunakan salah satu daripada berbilang stesen kerja dalam talian percuma kami seperti Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS.
JADUAL:
NAMA
odb - pengkompil pemetaan hubungan objek (ORM) untuk C++
SINOPSIS
ODB [ pilihan ] fail [ fail ... ]
DESCRIPTION
Memandangkan satu set kelas C++ dalam fail pengepala, ODB menjana kod C++ yang membolehkan anda
berterusan, bertanya dan mengemas kini objek kelas ini dalam pangkalan data hubungan (RDBMS). The
pangkalan data hubungan yang harus disasarkan oleh kod yang dihasilkan ditentukan dengan yang diperlukan
--pangkalan data pilihan (lihat di bawah).
Untuk fail input dalam borang nama.hxx (sambungan fail lain boleh digunakan sebagai ganti
.hxx), dalam mod pangkalan data tunggal (lalai), fail C++ yang dijana secara lalai mempunyai
nama-nama berikut: nama-odb.hxx (fail pengepala), nama-odb.ixx (fail sebaris), dan nama-
odb.cxx (fail sumber). Selain itu, jika --jana-skema pilihan ditentukan dan
sql format skema diminta (lihat --format-skema), nama.sql fail skema pangkalan data ialah
dihasilkan. Sekiranya berasingan format skema diminta, kod penciptaan pangkalan data adalah
dijana ke dalam yang berasingan name-schema.cxx fail.
Dalam mod berbilang pangkalan data (lihat --berbilang pangkalan data pilihan di bawah), fail yang dijana
sepadan dengan biasa pangkalan data mempunyai nama yang sama seperti dalam mod pangkalan data tunggal.
Untuk pangkalan data lain, nama fail termasuk nama pangkalan data: nama-odb-db.hxx, nama-odb-
db.ixx, nama-odb-db.cxx, nama-db.sql, dan skema nama-db.cxx (di mana db ialah pangkalan data
nama).
PILIHAN
- membantu Cetak maklumat penggunaan dan keluar.
--versi
Versi cetak dan keluar.
-I dir Tambah dir ke permulaan senarai direktori yang akan dicari disertakan
fail pengepala.
-D nama[=def]
Tentukan makro nama dengan definisi def. Jika takrifan ditinggalkan, takrifkan nama menjadi
1.
-U nama
Batalkan sebarang takrifan makro sebelumnya nama, sama ada terbina dalam atau disediakan dengan
-D pilihan.
--pangkalan data|-d db
Hasilkan kod untuk db pangkalan data. Nilai yang sah ialah mssql, mysql, nujum, pgsql,
sqlite, dan biasa (mod berbilang pangkalan data sahaja).
--berbilang pangkalan data|-m jenis
Dayakan sokongan berbilang pangkalan data dan tentukan jenisnya. Nilai yang sah untuk pilihan ini
adalah statik and dinamik.
Dalam mod berbilang pangkalan data, pilihan yang menentukan jenis (contohnya, --skema-
format), nama (contohnya, --odb-file-akhiran), atau kandungan (contohnya, prolog
dan pilihan epilog) bagi fail output boleh diawali dengan nama pangkalan data
diikuti dengan kolon, contohnya, mysql:value. Ini menyekat nilai seperti itu
pilihan untuk hanya digunakan pada fail yang dijana yang sepadan dengan pangkalan data ini.
--default-database db
Apabila sokongan berbilang pangkalan data statik digunakan, nyatakan pangkalan data yang sepatutnya
membuat lalai. Apabila sokongan berbilang pangkalan data dinamik digunakan, biasa sentiasa ada
membuat pangkalan data lalai.
--generate-query|-q
Hasilkan kod sokongan pertanyaan. Tanpa sokongan ini anda tidak boleh menggunakan pandangan dan boleh sahaja
memuatkan objek melalui id mereka.
--jana-disediakan
Hasilkan kod sokongan pelaksanaan pertanyaan yang disediakan.
--tinggalkan-tidak bersedia
Tinggalkan kod sokongan pelaksanaan pertanyaan yang tidak disediakan (sekali sahaja).
--jana-sesi|-e
Hasilkan kod sokongan sesi. Dengan pilihan ini sokongan sesi akan didayakan oleh
lalai untuk semua kelas berterusan kecuali kelas yang jelas
kurang upaya menggunakan db Sesi pragma.
--jana-skema|-s
Hasilkan skema pangkalan data. Skema pangkalan data mengandungi pernyataan SQL yang
buat jadual pangkalan data yang diperlukan untuk menyimpan kelas berterusan yang ditakrifkan dalam fail
sedang disusun. Ambil perhatian bahawa dengan menggunakan skema ini, semua maklumat sedia ada
yang disimpan dalam jadual tersebut akan hilang.
Bergantung kepada pangkalan data yang digunakan (--pangkalan data pilihan), skema dijana
sama ada sebagai fail SQL kendiri atau dibenamkan ke dalam kod C++ yang dihasilkan. Secara lalai
fail SQL dijana untuk MySQL, PostgreSQL, Oracle dan Microsoft SQL
Pangkalan data pelayan dan skema dibenamkan ke dalam kod C++ untuk SQLite
pangkalan data. Menggunakan --format-skema pilihan untuk mengubah format skema lalai.
Jika sokongan evolusi skema pangkalan data didayakan (iaitu, versi model objek
ditentukan), maka pilihan ini juga mencetuskan penjanaan skema pangkalan data
penyata migrasi, sekali lagi sama ada sebagai fail SQL kendiri atau dibenamkan ke dalam
menjana kod C++. Anda boleh menyekat penjanaan pernyataan migrasi skema
dengan menyatakan --menekan-penghijrahan pilihan.
--jana-skema-sahaja
Hasilkan hanya skema pangkalan data. Ambil perhatian bahawa pilihan ini hanya sah apabila
menjana skema sebagai fail SQL kendiri (lihat --format-skema untuk maklumat lanjut).
--menekan-penghijrahan
Sekat penjanaan pernyataan migrasi skema pangkalan data.
--suppress-schema-version
Sekat penjanaan jadual versi skema. Jika anda menentukan pilihan ini kemudian
anda juga dijangka secara manual menentukan versi skema pangkalan data dan penghijrahan
nyatakan pada masa jalan menggunakan odb::pangkalan data::schema_version() fungsi.
--schema-version-table nama
Tentukan nama jadual versi skema alternatif dan bukannya nama lalai
versi_skema. Jika anda menentukan pilihan ini maka anda juga dijangka secara manual
nyatakan nama jadual versi skema pada masa jalan menggunakan
odb::pangkalan data::schema_version_table() fungsi. Nama jadual boleh layak.
--format-skema format
Hasilkan skema pangkalan data dalam format yang ditentukan. lulus sql as format kepada
hasilkan skema pangkalan data sebagai fail atau pas SQL kendiri tertanam untuk membenamkan
skema ke dalam kod C++ yang dihasilkan. The berasingan nilai adalah serupa dengan tertanam
kecuali kod penciptaan skema dijana ke dalam fail C++ yang berasingan (nama-
skema.cxx secara lalai). Nilai ini berguna terutamanya jika anda ingin meletakkan
fungsi penciptaan skema ke dalam program atau perpustakaan yang berasingan. Ulangi ini
pilihan untuk menjana skema pangkalan data yang sama dalam pelbagai format.
--tinggalkan-jatuhkan
Omit GUGUR pernyataan daripada skema pangkalan data yang dijana.
--tinggalkan-buat
Omit CREATE pernyataan daripada skema pangkalan data yang dijana.
--nama-skema nama
Penggunaan nama sebagai nama skema pangkalan data. Nama skema digunakan terutamanya untuk
membezakan antara berbilang skema terbenam dalam katalog skema. Mereka tidak
untuk dikelirukan dengan skema pangkalan data (ruang nama pangkalan data) yang ditentukan dengan
yang --skema pilihan. Jika pilihan ini tidak dinyatakan, nama kosong, iaitu
nama skema lalai, digunakan.
--fkeys-deferrable-mode m
Gunakan mod semakan kekangan m dalam kunci asing yang dijana untuk hubungan objek.
Nilai yang sah untuk pilihan ini ialah not_deferrable, Serta-merta, dan ditangguhkan (lalai).
MySQL dan SQL Server tidak menyokong kunci asing yang boleh ditangguhkan dan untuk pangkalan data ini
kunci sedemikian dijana diulas keluar. Kunci asing lain yang dijana oleh ODB
pengkompil (seperti yang digunakan untuk menyokong bekas dan hierarki polimorfik)
sentiasa dijana sebagai tidak boleh ditangguhkan.
Perhatikan juga bahawa jika anda menggunakan sama ada not_deferrable or Serta-merta mod, kemudian perintah itu
di mana anda meneruskan, mengemas kini dan memadamkan objek dalam urus niaga menjadi
penting.
--default-pointer ptr
Penggunaan ptr sebagai penunjuk lalai untuk objek dan pandangan yang berterusan. Objek dan pandangan
yang tidak mempunyai penunjuk yang diberikan dengan db penunjuk pragma akan menggunakan ini
penunjuk secara lalai. Nilai pilihan ini boleh * yang menandakan penunjuk mentah
dan merupakan nama lalai, atau nama yang layak bagi templat kelas penunjuk pintar, untuk
contohnya, std::auto_ptr. Dalam kes kedua, pengkompil ODB membina objek
atau lihat penuding dengan menambah satu hujah templat bagi objek atau jenis paparan kepada
nama yang layak, contohnya std::auto_ptr. Masa jalan ODB menggunakan objek
dan lihat penunjuk untuk kembali, dan, dalam kes objek, lulus dan cache secara dinamik
contoh jenis objek dan paparan yang diperuntukkan.
Kecuali untuk penunjuk mentah dan penunjuk pintar standard yang ditakrifkan dalam
fail pengepala, anda dijangka memasukkan definisi penunjuk lalai di
permulaan fail pengepala yang dijana. Terdapat dua cara biasa untuk dicapai
ini: anda boleh sama ada memasukkan pengepala yang diperlukan dalam fail yang sedang disusun atau anda
boleh menggunakan --hxx-prolog pilihan untuk menambah yang perlu #include arahan kepada
kod yang dihasilkan.
--jenis sesi jenis
Penggunaan jenis sebagai jenis sesi alternatif dan bukannya lalai odb::sesi. ini
pilihan boleh digunakan untuk menentukan pelaksanaan sesi tersuai untuk digunakan oleh
kelas yang berterusan. Ambil perhatian bahawa anda juga perlu memasukkan takrifan
jenis sesi tersuai ke dalam fail pengepala yang dijana. Ini biasanya dicapai dengan
yang --hxx-prolog* pilihan.
--profil|-p nama
Tentukan profil yang harus digunakan semasa penyusunan. Profil ialah pilihan
fail. Pengkompil ODB mula-mula mencari versi khusus pangkalan data dengan nama
dibina dengan melampirkan -pangkalan data.pilihan akhiran ke nama, Di mana pangkalan data is
nama pangkalan data seperti yang dinyatakan dengan --pangkalan data pilihan. Jika fail ini tidak
dijumpai, maka pengkompil ODB mencari versi bebas pangkalan data dengan nama
dibina dengan menambahkan hanya .pilihan akhiran.
Fail pilihan profil dicari dalam set direktori yang sama seperti C++
tajuk disertakan dengan #include <...> arahan (laluan terbina dalam ditambah yang
dinyatakan dengan -I pilihan). Fail pilihan pertama kali dicari dalam
direktori itu sendiri dan kemudian di dalamnya odb/ subdirektori.
Untuk format fail pilihan rujuk kepada --pilihan-fail pilihan di bawah. awak
boleh mengulangi pilihan ini untuk menentukan lebih daripada satu profil.
--sekaligus
Hasilkan kod untuk semua fail input dan juga untuk semua fail yang mereka
sertakan sekali gus. Hasilnya ialah satu set fail sumber/skema yang mengandungi semua
kod yang dihasilkan. Jika lebih daripada satu fail input ditentukan bersama-sama dengan ini
pilihan, kemudian --input-nama pilihan juga mesti dinyatakan untuk menyediakan
nama asas untuk fail output. Dalam kes ini, bahagian direktori pangkalan sedemikian
nama digunakan sebagai lokasi gabungan fail. Ini boleh menjadi penting untuk
#include resolusi arahan.
--skema skim
Tentukan skema pangkalan data (ruang nama pangkalan data) yang harus diberikan kepada
kelas berterusan dalam fail yang sedang disusun. Skema pangkalan data tidak boleh
keliru dengan nama skema pangkalan data (nama katalog skema) yang ditentukan dengan
yang --nama-skema pilihan.
--simbol-eksport lambang
Memasukkan lambang di tempat di mana penyata kawalan eksport/import DLL
(__declspec(dllexport/dllimport)) adalah perlu. Lihat juga --simbol-luar
pilihan di bawah.
--simbol-luar lambang
If lambang ditakrifkan, masukkannya di tempat yang mesti ada instantiasi templat
diisytiharkan luar. Pilihan ini biasanya digunakan bersama-sama dengan --simbol-eksport apabila
kedua-dua sokongan dan pertanyaan berbilang pangkalan data didayakan.
--std versi
Nyatakan standard C++ yang harus digunakan semasa penyusunan. Nilai yang sah ialah
c ++ 98 (lalai), c ++ 11, dan c ++ 14.
--amaran-keras-tambah
Beri amaran tentang ahli data yang ditambah keras.
--amaran-keras-padam
Beri amaran tentang ahli data yang dipadam keras dan kelas berterusan.
--amaran-keras
Beri amaran tentang kedua-dua ahli data yang ditambah dan dipadam keras serta kelas berterusan.
--output-dir|-o dir
Tulis fail yang dihasilkan ke dir bukannya direktori semasa.
--input-nama nama
Penggunaan nama bukannya fail input untuk mendapatkan nama fail yang dijana. Jika
yang --sekaligus pilihan ditentukan, kemudian bahagian direktori daripada nama digunakan sebagai
lokasi fail gabungan. Merujuk kepada --sekaligus pilihan untuk butiran.
--changelog fail
Baca/tulis changelog dari/ke fail bukannya fail changelog lalai. The
nama fail changelog lalai diperoleh daripada nama fail input dan ia diletakkan
ke dalam direktori yang sama dengan fail input. Perhatikan bahawa --output-dir pilihan tidak
tidak menjejaskan lokasi fail changelog. Dalam erti kata lain, secara lalai, changelog
fail dianggap sebagai input lain dan bukannya output walaupun pengkompil ODB
boleh mengubah suainya. Menggunakan --changelog-in and --changelog-keluar pilihan untuk ditentukan
fail chaneglog input dan output yang berbeza.
--changelog-in fail
Baca changelog dari fail bukannya fail changelog lalai. Jika pilihan ini adalah
ditentukan, maka anda juga mesti menentukan fail chanegelog output dengan --changelog-
keluar.
--changelog-keluar fail
Tulis changelog ke fail bukannya fail changelog lalai. Jika pilihan ini adalah
ditentukan, maka anda juga mesti menentukan fail chanegelog input dengan --changelog-
in.
--changelog-dir dir
Penggunaan dir bukannya direktori fail input sebagai direktori fail changelog. ini
direktori juga ditambah pada fail changelog yang ditentukan dengan --changelog,
--changelog-in, dan --changelog-in pilihan melainkan ia adalah laluan mutlak.
--init-changelog
Paksa pemulaan semula changelog walaupun satu wujud (semua yang sedia ada
sejarah perubahan akan hilang). Pilihan ini berguna terutamanya untuk automatik
ujian.
--odb-file-akhiran akhiran
Penggunaan akhiran untuk membina nama fail C++ yang dihasilkan. Dalam single-
mod pangkalan data nilai lalai untuk pilihan ini ialah -odb. Dalam mod berbilang pangkalan data
ia adalah -odb untuk fail yang sepadan dengan biasa pangkalan data dan -odb-db (di mana db
ialah nama pangkalan data) untuk pangkalan data lain.
--sql-file-akhiran akhiran
Penggunaan akhiran untuk membina nama fail SQL skema yang dijana. Dalam single-
mod pangkalan data secara lalai tiada akhiran digunakan. Dalam mod berbilang pangkalan data lalai
nilai untuk pilihan ini ialah -db (di mana db ialah nama pangkalan data).
--skema-fail-akhiran akhiran
Penggunaan akhiran untuk membina nama fail sumber C++ skema yang dijana. Di dalam
mod pangkalan data tunggal nilai lalai untuk pilihan ini ialah -skema. Dalam pelbagai
mod pangkalan data itu -skema-db (di mana db ialah nama pangkalan data). Lihat --skema-
format pilihan untuk butiran.
--changelog-file-akhiran sfx
Penggunaan sfx untuk membina nama fail changelog. Dalam mod pangkalan data tunggal oleh
lalai tiada akhiran digunakan. Dalam mod berbilang pangkalan data nilai lalai untuk ini
pilihan adalah -db (di mana db ialah nama pangkalan data).
--hxx-akhiran akhiran
Penggunaan akhiran bukannya lalai .hxx untuk membina nama C++ yang dihasilkan
fail pengepala.
--ixx-akhiran akhiran
Penggunaan akhiran bukannya lalai .ixx untuk membina nama C++ yang dihasilkan
fail sebaris.
--cxx-akhiran akhiran
Penggunaan akhiran bukannya lalai .cxx untuk membina nama C++ yang dihasilkan
fail sumber.
--sql-akhiran akhiran
Penggunaan akhiran bukannya lalai .sql untuk membina nama yang dihasilkan
fail skema pangkalan data.
--changelog-akhiran akhiran
Penggunaan akhiran bukannya lalai xml untuk membina nama fail changelog.
--hxx-prolog teks
Memasukkan teks pada permulaan fail pengepala C++ yang dihasilkan.
--ixx-prolog teks
Memasukkan teks pada permulaan fail sebaris C++ yang dihasilkan.
--cxx-prolog teks
Memasukkan teks pada permulaan fail sumber C++ yang dihasilkan.
--skema-prolog teks
Memasukkan teks pada permulaan fail sumber C++ skema yang dijana.
--sql-prolog teks
Memasukkan teks pada permulaan fail skema pangkalan data yang dijana.
--prolog-penghijrahan teks
Memasukkan teks pada permulaan fail pemindahan pangkalan data yang dijana.
--sql-interlude teks
Memasukkan teks selepas semua GUGUR dan sebelum apa-apa CREATE pernyataan dalam yang dihasilkan
fail skema pangkalan data.
--hxx-epilog teks
Memasukkan teks pada penghujung fail pengepala C++ yang dihasilkan.
--ixx-epilog teks
Memasukkan teks pada penghujung fail sebaris C++ yang dihasilkan.
--cxx-epilog teks
Memasukkan teks pada akhir fail sumber C++ yang dihasilkan.
--skema-epilog teks
Memasukkan teks pada penghujung fail sumber C++ skema yang dijana.
--sql-epilog teks
Memasukkan teks pada akhir fail skema pangkalan data yang dijana.
--epilog penghijrahan teks
Memasukkan teks pada akhir fail pemindahan pangkalan data yang dijana.
--hxx-prolog-file fail
Masukkan kandungan fail pada permulaan fail pengepala C++ yang dihasilkan.
--ixx-prolog-fail fail
Masukkan kandungan fail pada permulaan fail sebaris C++ yang dihasilkan.
--cxx-prolog-file fail
Masukkan kandungan fail pada permulaan fail sumber C++ yang dihasilkan.
--schema-prologue-file fail
Masukkan kandungan fail pada permulaan sumber C++ skema yang dijana
fail.
--sql-prologue-file fail
Masukkan kandungan fail pada permulaan fail skema pangkalan data yang dijana.
--fail-prolog-penghijrahan f
Masukkan kandungan fail f pada permulaan pemindahan pangkalan data yang dihasilkan
fail.
--sql-interlude-file fail
Masukkan kandungan fail selepas semua GUGUR dan sebelum apa-apa CREATE kenyataan dalam
fail skema pangkalan data yang dihasilkan.
--hxx-epilog-fail fail
Masukkan kandungan fail pada penghujung fail pengepala C++ yang dihasilkan.
--ixx-epilog-fail fail
Masukkan kandungan fail pada penghujung fail sebaris C++ yang dihasilkan.
--cxx-epilog-fail fail
Masukkan kandungan fail pada akhir fail sumber C++ yang dihasilkan.
--fail-epilog-skema fail
Masukkan kandungan fail pada penghujung fail sumber C++ skema yang dijana.
--sql-epilog-file fail
Masukkan kandungan fail pada akhir fail skema pangkalan data yang dijana.
--fail-epilog-penghijrahan f
Masukkan kandungan fail f pada akhir fail pemindahan pangkalan data yang dijana.
--odb-prolog teks
Mengumpul teks sebelum fail pengepala input. Pilihan ini membolehkan anda menambah tambahan
pengisytiharan, seperti pengkhususan ciri tersuai, kepada kompilasi ODB
proses.
--odb-prologue-file fail
Mengumpul fail kandungan sebelum fail pengepala input. Fail prolog disusun
selepas semua serpihan teks prolog (--odb-prolog pilihan).
--odb-epilog teks
Mengumpul teks selepas fail pengepala input. Pilihan ini membolehkan anda menambah tambahan
pengisytiharan, seperti pengkhususan ciri tersuai, kepada kompilasi ODB
proses.
--odb-epilog-fail fail
Mengumpul fail kandungan selepas fail pengepala input. Fail epilog disusun
selepas semua serpihan teks epilog (--odb-epilog pilihan).
--awalan jadual awalan
Tambah awalan kepada nama jadual dan, untuk pangkalan data yang mempunyai indeks global dan/atau asing
nama kunci, kepada nama-nama itu juga. Awalan ditambahkan pada kedua-dua nama yang telah
dinyatakan dengan db meja and db indeks pragmas dan yang secara automatik
diperoleh daripada nama ahli kelas dan data. Jika anda memerlukan pemisah, seperti
garis bawah, antara awalan dan nama, maka anda harus memasukkannya ke dalam
nilai awalan.
--indeks-akhiran akhiran
Penggunaan akhiran bukannya lalai _i untuk membina nama indeks. Akhiran sahaja
ditambahkan pada nama yang diperoleh secara automatik daripada nama ahli data. Jika awak
memerlukan pemisah, seperti garis bawah, antara nama dan akhiran, kemudian
anda harus memasukkannya ke dalam nilai akhiran.
--fkey-akhiran akhiran
Penggunaan akhiran bukannya lalai _fk untuk membina nama kunci asing. Jika awak
memerlukan pemisah, seperti garis bawah, antara nama dan akhiran, kemudian
anda harus memasukkannya ke dalam nilai akhiran.
--urutan-akhiran akhiran
Penggunaan akhiran bukannya lalai _seq untuk membina nama urutan. Jika anda memerlukan
pemisah, seperti garis bawah, antara nama dan akhiran, kemudian anda
hendaklah memasukkannya ke dalam nilai akhiran.
--sql-name-case kes
Tukar semua nama SQL yang diterbitkan secara automatik kepada huruf besar atau kecil. Nilai yang sah
untuk pilihan ini ialah atas and yang lebih rendah.
--jadual-regex regex
Tambah regex kepada senarai ungkapan biasa yang digunakan untuk mengubah
nama jadual terbitan secara automatik. Lihat bahagian TRANSFORMASI NAMA SQL di bawah
untuk maklumat lanjut.
--column-regex regex
Tambah regex kepada senarai ungkapan biasa yang digunakan untuk mengubah
nama lajur terbitan secara automatik. Lihat bahagian TRANSFORMASI NAMA SQL di bawah
untuk maklumat lanjut.
--index-regex regex
Tambah regex kepada senarai ungkapan biasa yang digunakan untuk mengubah
nama indeks yang diperoleh secara automatik. Lihat bahagian TRANSFORMASI NAMA SQL di bawah
untuk maklumat lanjut.
--fkey-regex regex
Tambah regex kepada senarai ungkapan biasa yang digunakan untuk mengubah
nama kunci asing yang diterbitkan secara automatik. Lihat bahagian TRANSFORMASI NAMA SQL
di bawah untuk keterangan.
--sequence-regex regex
Tambah regex kepada senarai ungkapan biasa yang digunakan untuk mengubah
nama urutan terbitan secara automatik. Lihat bahagian TRANSFORMASI NAMA SQL
di bawah untuk keterangan.
--statement-regex regex
Tambah regex kepada senarai ungkapan biasa yang digunakan untuk mengubah
nama pernyataan yang disediakan secara automatik. Lihat TRANSFORMASI NAMA SQL
bahagian di bawah untuk keterangan.
--sql-name-regex regex
Tambah regex kepada senarai ungkapan biasa yang digunakan untuk mengubah semua
nama SQL yang diperoleh secara automatik. Lihat bahagian TRANSFORMASI NAMA SQL di bawah untuk
butiran.
--sql-name-regex-trace
Jejaki proses menggunakan ungkapan biasa yang ditentukan dengan nama SQL
--*-regex pilihan. Gunakan pilihan ini untuk mengetahui sebab ungkapan biasa anda tidak
lakukan apa yang anda harapkan mereka lakukan.
--accessor-regex regex
Tambah regex kepada senarai ungkapan biasa yang digunakan untuk mengubah nama ahli data kepada
nama fungsi apabila mencari fungsi aksesori yang sesuai. Hujah ke
pilihan ini ialah ungkapan biasa seperti Perl dalam bentuk /pola/penggantian/.
Sebarang aksara boleh digunakan sebagai pembatas dan bukannya / dan pembatas boleh
melarikan diri ke dalam pola and penggantian dengan garis miring ke belakang (). Anda boleh menentukan
berbilang ungkapan biasa dengan mengulangi pilihan ini.
Semua ungkapan biasa dicuba dalam susunan yang ditentukan dan yang pertama
ungkapan yang menghasilkan fungsi pengakses yang sesuai digunakan. Setiap ungkapan adalah
mencuba dua kali: pertama dengan nama ahli sebenar dan kemudian dengan ahli awam
nama yang diperoleh dengan mengalih keluar hiasan nama ahli biasa, seperti
mendahului dan mengekori menggariskan, yang m_ awalan, dsb. Pengkompil ODB juga
termasuk beberapa ungkapan terbina dalam untuk nama pengakses yang biasa digunakan, seperti
get_foo, getFoo, getfoo, dan adil foo. Ungkapan terbina dalam cuba terakhir.
Sebagai contoh, ungkapan berikut mengubah ahli data dengan nama awam
dalam bentuk foo kepada nama pengakses dalam borang GetFoo:
/(.+)/Dapatkan\u$1/
Lihat juga bahagian REGEX DAN SHELL PETIKAN di bawah.
--accessor-regex-trace
Jejaki proses menggunakan ungkapan biasa yang ditentukan dengan --aksesor-
regex pilihan. Gunakan pilihan ini untuk mengetahui sebab ungkapan biasa anda tidak berkesan
apa yang anda harapkan mereka lakukan.
--modifier-regex regex
Tambah regex kepada senarai ungkapan biasa yang digunakan untuk mengubah nama ahli data kepada
nama fungsi apabila mencari fungsi pengubah suai yang sesuai. Hujah ke
pilihan ini ialah ungkapan biasa seperti Perl dalam bentuk /pola/penggantian/.
Sebarang aksara boleh digunakan sebagai pembatas dan bukannya / dan pembatas boleh
melarikan diri ke dalam pola and penggantian dengan garis miring ke belakang (). Anda boleh menentukan
berbilang ungkapan biasa dengan mengulangi pilihan ini.
Semua ungkapan biasa dicuba dalam susunan yang ditentukan dan yang pertama
ungkapan yang menghasilkan fungsi pengubahsuai yang sesuai digunakan. Setiap ungkapan adalah
mencuba dua kali: pertama dengan nama ahli sebenar dan kemudian dengan ahli awam
nama yang diperoleh dengan mengalih keluar hiasan nama ahli biasa, seperti
mendahului dan mengekori menggariskan, yang m_ awalan, dsb. Pengkompil ODB juga
termasuk beberapa ungkapan terbina dalam untuk nama pengubah suai yang biasa digunakan, seperti
set_foo, setFoo, setfoo, dan adil foo. Ungkapan terbina dalam cuba terakhir.
Sebagai contoh, ungkapan berikut mengubah ahli data dengan nama awam
dalam bentuk foo untuk mengubah suai nama dalam borang SetFoo:
/(.+)/Set\u$1/
Lihat juga bahagian REGEX DAN SHELL PETIKAN di bawah.
--modifier-regex-trace
Jejaki proses menggunakan ungkapan biasa yang ditentukan dengan --pengubah suai-
regex pilihan. Gunakan pilihan ini untuk mengetahui sebab ungkapan biasa anda tidak berkesan
apa yang anda harapkan mereka lakukan.
--termasuk-dengan-kurungan
Gunakan kurungan sudut (<>) dan bukannya petikan ("") dalam yang dihasilkan #include
arahan.
--include-prefix awalan
Tambah awalan kepada yang dihasilkan #include laluan arahan.
--include-regex regex
Tambah regex kepada senarai ungkapan biasa yang digunakan untuk mengubah yang dihasilkan #include
laluan arahan. Hujah untuk pilihan ini ialah ungkapan biasa seperti Perl dalam
borang /pola/penggantian/. Sebarang aksara boleh digunakan sebagai pembatas dan bukannya
/ dan pembatas boleh dilepaskan ke dalam pola and penggantian dengan garis miring ke belakang
(). Anda boleh menentukan berbilang ungkapan biasa dengan mengulangi pilihan ini. Semua
ungkapan biasa dicuba dalam susunan yang ditentukan dan ungkapan pertama yang
mancis digunakan.
Sebagai contoh, perubahan ungkapan berikut termasuk laluan dalam bentuk
foo/bar-odb.h kepada laluan dalam bentuk foo/generated/bar-odb.h:
%foo/(.+)-odb.h%foo/generated/$1-odb.h%
Lihat juga bahagian REGEX DAN SHELL PETIKAN di bawah.
--include-regex-trace
Jejaki proses menggunakan ungkapan biasa yang ditentukan dengan --termasuk-
regex pilihan. Gunakan pilihan ini untuk mengetahui sebab ungkapan biasa anda tidak berkesan
apa yang anda harapkan mereka lakukan.
--pengawal-awalan awalan
Tambah awalan kepada pengawal kemasukan pengepala yang dihasilkan. Awalan ditukar kepada
huruf besar dan aksara yang menyalahi undang-undang dalam nama makro prapemproses ialah
digantikan dengan garis bawah.
--show-sloc
Cetak bilangan baris sumber fizikal kod (SLOC) yang dijana.
--had-sloc num
Semak bahawa bilangan baris sumber fizikal kod (SLOC) yang dijana tidak
melebihi num.
--pilihan-fail fail
Baca pilihan tambahan daripada fail dengan setiap pilihan muncul pada baris yang berasingan
pilihan diikuti dengan ruang dan nilai pilihan. Baris dan baris kosong bermula
bersama # tidak diendahkan. Nilai pilihan boleh disertakan dalam dua kali ganda (") atau bujang (')
petikan untuk mengekalkan ruang putih di hadapan dan di belakang serta untuk menentukan kosong
nilai. Jika nilai itu sendiri mengandungi petikan mengekor atau mendahului, sertakan dengan
sepasang petikan tambahan, sebagai contoh '"x"'. Sebut harga tidak mendahului dan tidak mengekori adalah
ditafsirkan sebagai sebahagian daripada nilai pilihan.
Semantik menyediakan pilihan dalam fail adalah bersamaan dengan menyediakan yang sama
set pilihan dalam susunan yang sama pada baris arahan pada titik di mana
--pilihan-fail pilihan ditentukan kecuali shell melarikan diri dan petikan adalah
tidak dikehendaki. Anda boleh mengulangi pilihan ini untuk menentukan lebih daripada satu fail pilihan.
-x pilihan
Pas pilihan kepada pengkompil C++ yang mendasari (g ++). The pilihan nilai yang tidak
bermula dengan - dianggap sebagai g ++ nama boleh laku.
-v Cetak arahan yang dilaksanakan untuk menjalankan peringkat penyusunan.
--jejak
Jejaki proses penyusunan.
--mysql-enjin enjin
Penggunaan enjin bukannya lalai InnoDB dalam fail skema pangkalan data yang dijana. Untuk
maklumat lanjut tentang pilihan enjin storan lihat dokumentasi MySQL. Jika awak
ingin menggunakan enjin lalai pangkalan data, pas lalai sebagai nilai untuk ini
pilihan.
--sqlite-override-null
Jadikan semua lajur dalam skema pangkalan data yang dijana membenarkan NULL nilai. Ini adalah
terutamanya berguna dalam penghijrahan skema kerana SQLite tidak menyokong pengguguran
lajur. Dengan membuat semua lajur NULL kita kemudian boleh "memadam" mereka dengan menetapkan mereka
nilai ke NULL. Ambil perhatian bahawa pilihan ini mengatasi walaupun bukan_null pragma.
--sqlite-lax-auto-id
Jangan paksa meningkatkan id objek yang ditetapkan secara automatik secara monoton. Di dalam ini
mod skema pangkalan data yang dijana meninggalkan PENUTUPAN AUTOINCREMENT kata kunci yang menghasilkan
kegigihan objek yang lebih pantas tetapi boleh menyebabkan id yang ditetapkan secara automatik tidak berada dalam a
perintah menaik dengan ketat. Rujuk dokumentasi SQLite untuk butiran.
--pgsql-server-version ver
Tentukan versi pelayan PostgreSQL minimum yang menggunakan kod C++ dan
skema akan digunakan. Maklumat ini digunakan untuk mendayakan versi khusus
pengoptimuman dan penyelesaian dalam kod dan skema C++ yang dihasilkan. Versi
mesti berada di utama.kecil bentuk, contohnya, 9.1. Jika pilihan ini tidak dinyatakan,
kemudian 7.4 atau kemudiannya diandaikan.
--oracle-client-version ver
Tentukan versi perpustakaan pelanggan Oracle (OCI) minimum yang digunakan untuk menghasilkan
Kod C++ akan dipautkan. Maklumat ini digunakan untuk mendayakan versi khusus
pengoptimuman dan penyelesaian dalam kod C++ yang dihasilkan. Versi mesti dalam
yang utama.kecil bentuk, contohnya, 11.2. Jika pilihan ini tidak dinyatakan, maka 10.1
atau kemudiannya diandaikan.
--oracle-warn-truncation
Beri amaran tentang nama SQL yang lebih panjang daripada 30 aksara dan oleh itu
dipenggal. Ambil perhatian bahawa semasa penjanaan skema pangkalan data (--jana-skema) ODB
mengesan apabila pemangkasan tersebut membawa kepada konflik nama dan isu diagnostik
tanpa pilihan ini dinyatakan.
--mssql-server-version ver
Nyatakan versi pelayan SQL Server minimum yang menggunakan kod C++ dan
skema akan digunakan. Maklumat ini digunakan untuk mendayakan versi khusus
pengoptimuman dan penyelesaian dalam kod dan skema C++ yang dihasilkan. Versi
mesti berada di utama.kecil bentuk, contohnya, 9.0 (SQL Server 2005), 10.5 (2008R2),
or 11.0 (2012). Jika pilihan ini tidak dinyatakan, maka 10.0 (SQL Server 2008) atau
kemudiannya diandaikan.
--mssql-short-had saiz
Nyatakan had saiz data pendek. Jika watak, watak kebangsaan, atau binari
jenis data mempunyai panjang maksimum (dalam bait) kurang daripada atau sama dengan had ini, maka ia
dilayan sebagai pendek data, jika tidak lama data. Untuk data pendek ODB pra-
memperuntukkan penimbal perantaraan dengan saiz maksimum dan mengikatnya terus kepada a
parameter atau lajur hasil. Dengan cara ini, API asas (ODBC) boleh membaca/menulis
terus dari/ke penimbal ini. Dalam kes data panjang, data dibaca/ditulis
dalam ketulan menggunakan SQLGetData()/SQLPutData() fungsi ODBC. Manakala data yang panjang
pendekatan mengurangkan jumlah memori yang digunakan oleh aplikasi, ia mungkin memerlukan
sumber CPU yang lebih besar. Had data pendek lalai ialah 1024 bait. Apabila menetapkan a
had data pendek tersuai, pastikan ia cukup besar supaya tiada objek
id dalam aplikasi dianggap sebagai data yang panjang.
SQL NAMA TRANSFORMASI
Pengkompil ODB menyediakan beberapa mekanisme untuk mengubah terbitan secara automatik
Nama SQL, seperti jadual, lajur, dsb., untuk dipadankan dengan konvensyen penamaan tertentu. Dekat
tahap yang lebih tinggi, kita boleh menambah awalan pada nama global (jadual dan, untuk beberapa pangkalan data, indeks
dan/atau kunci asing) dengan --awalan jadual pilihan. Begitu juga, kita boleh menentukan adat
akhiran untuk indeks terbitan automatik (--indeks-akhiran; lalai ialah _i), kunci asing
(--fkey-akhiran; lalai ialah _fk), dan urutan (--urutan-akhiran; lalai ialah _seq) nama.
Akhir sekali, kita juga boleh menukar semua nama kepada huruf besar atau kecil dengan --sql-name-case
pilihan (nilai yang sah ialah atas and yang lebih rendah).
Pada peringkat yang lebih rendah kita boleh menentukan satu set ungkapan biasa untuk melaksanakan sewenang-wenangnya
transformasi nama SQL yang diperoleh secara automatik. Jika kita mahu tetap tertentu
ungkapan hanya untuk digunakan pada nama tertentu, sebagai contoh, jadual atau lajur, kemudian kami menggunakan satu
daripada --jenis-regex pilihan, di mana jenis boleh meja, ruang, indeks, fkey, turutan, Atau
kenyataan. Sebaliknya, jika kita mahu ungkapan biasa kita digunakan untuk semua SQL
nama, maka kita menggunakan --sql-name-regex pilihan.
Interaksi antara transformasi peringkat tinggi dan rendah adalah seperti berikut. Awalan
dan imbuhan ditambahkan dahulu. Kemudian transformasi ungkapan biasa digunakan.
Akhir sekali, jika diminta, nama itu ditukar kepada huruf besar atau kecil. Perhatikan juga bahawa semua
transformasi ini kecuali untuk --awalan jadual hanya digunakan pada nama yang diterbitkan secara automatik.
Dalam erti kata lain, jika jadual, lajur, dsb., nama dinyatakan secara eksplisit dengan pragma,
maka ia digunakan sebagaimana adanya, tanpa menggunakan sebarang transformasi (kecuali awalan jadual).
Nilai untuk --*-regex pilihan ialah ungkapan biasa seperti Perl dalam bentuk
/pola/penggantian/. Sebarang aksara boleh digunakan sebagai pembatas dan bukannya / dan juga
pembatas boleh melarikan diri di dalam pola and penggantian dengan garis miring ke belakang (). Awak boleh
juga tentukan berbilang ungkapan biasa dengan mengulangi pilihan ini.
Semua ungkapan biasa dicuba dalam susunan yang ditentukan dengan nama khusus
ungkapan (contohnya, --jadual-regex) cuba dahulu diikuti dengan ungkapan generik
(--sql-name-regex). Ungkapan pertama yang sepadan digunakan.
Sebagai contoh, pertimbangkan ungkapan biasa yang mengubah nama kelas dalam bentuk Cfoo
kepada nama jadual dalam borang FOO:
--jadual-regex '/C(.+)/\U$1/'
Sebagai contoh yang lebih menarik, pertimbangkan transformasi nama kelas yang mengikuti
konvensyen kes unta besar (contohnya, FooBar) kepada nama jadual yang mengikuti
dipisahkan garis bawah, semua konvensyen huruf besar (contohnya, FOO_BAR). Untuk kes ini kami
perlu menggunakan ungkapan berasingan untuk mengendalikan satu perkataan, dua perkataan, dsb., nama:
--jadual-regex '/([Az][az]+)/\U$1/'
--jadual-regex '/([Az][az]+)([Az][az]+)/\U$1_$2/'
Lihat juga bahagian REGEX DAN SHELL PETIKAN di bawah.
Regex DAN SHELL SEBUTHARGA
Apabila memasukkan hujah ungkapan biasa dalam baris arahan shell selalunya
perlu menggunakan petikan (menyertakan hujah dalam " " atau ' ') untuk mengelakkan
shell daripada mentafsir aksara tertentu, contohnya, ruang sebagai pemisah hujah dan
$ sebagai pengembangan berubah-ubah.
Malangnya sukar untuk mencapai ini dengan cara yang mudah alih merentasi cengkerang POSIX,
seperti yang terdapat pada GNU/Linux dan UNIX, dan Windows shell. Contohnya, jika anda menggunakan " "
untuk memetik anda akan mendapat hasil yang salah dengan cangkerang POSIX jika ungkapan anda mengandungi $.
Cara standard untuk menangani perkara ini pada sistem POSIX ialah menggunakan ' ' sebaliknya.
Malangnya, Windows shell tidak mengalih keluar ' ' daripada argumen apabila ia dihantar ke
aplikasi. Akibatnya anda mungkin perlu menggunakan ' ' untuk POSIX dan " " untuk Windows ($ tidak
dianggap sebagai watak istimewa pada Windows).
Sebagai alternatif, anda boleh menyimpan pilihan ungkapan biasa ke dalam fail, satu pilihan setiap baris,
dan gunakan fail ini dengan --pilihan-fail pilihan. Dengan pendekatan ini anda tidak perlu
risau pasal shell quoting.
DIAGNOSTIK
Jika fail input tidak sah C++, ODB akan mengeluarkan mesej diagnostik kepada STDERR dan keluar
dengan kod keluar bukan sifar.
Gunakan odb dalam talian menggunakan perkhidmatan onworks.net