CPP (aka C ++) + MySQL

MySQL

Herkese merhaba, burada size C ++ ile MySQL arasındaki bağlantının GNU / Linux'ta nasıl olacağına dair bir örnek vereceğim, elbette bu sadece basit bir örnek. Öncelikle derlemek için G ++ kullanacağım ve paketlerin kurulu olması gerekiyor libmysql ++ y libmysql ++ - geliştirme . İşte örnek:

#Dahil etmek #Dahil etmek #Dahil etmek ad alanı std kullanarak; #define SUNUCU "HOST" #define USER "USR" #define PASSWORD "PSWD" #define DATABASE "örnek" int main () {MYSQL * connect; connect = mysql_init (NULL); eğer (! connect) {cout << "MySQL Başlatma başarısız"; dönüş 1; } connect = mysql_real_connect (bağlan, "HOST", "KULLANICI", "PASWD", "VERİ TABANI", 0, NULL, 0); if (connect) {cout << "bağlantı Başarılı \ n"; } else {cout << "bağlantı başarısız oldu \ n"; } MYSQL_RES * res_set; MYSQL_ROW satırı; mysql_query (bağlan, "veriden * seç;"); işaretsiz int i = 0; res_set = mysql_store_result (bağlan); işaretsiz int numrows = mysql_num_rows (res_set); cout << endl; cout << "\ t -------------------------------------------- ------------------------- \ t "<< endl; while (((row = mysql_fetch_row (res_set))! = NULL)) {// cout << "% s \ n", satır [i]! = NULL? satır [i]: "NULL"; cout << "\ t | \ t" << satır [i] << "\ t | \ t" << satır [i + 1] << "\ t | \ t" << satır [i + 2] << "\ t | \ t" << endl; cout << "\ t -------------------------------------------- ------------------------- \ t "<< endl; } mysql_close (bağlan); dönüş 0; }

Peki, G ++ 'da nasıl derleyeceğinizi bilmiyorsanız, bu bir örnektir:

g ++ -o main main.cpp -L / usr / include / mysql -lmysqlclient -I / usr / include / mysql

Sonra çalıştırırsın ve şöyle görünürdü:

------------------------------------- | 1 | Carmen | 46 | ------------------------------------- | 2 | Juan | 56 | --------------------------------------

Not: MAKEFILE YÖNTEMİ kullanarak da derleyebilirsiniz.


Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: Miguel Ángel Gatón
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.

  1.   pandev92 dijo

    C ++ ... bu dil beni uzun zaman önce yendi ...

    1.    eliotime3000 dijo

      Bu programlama diliyle daha fazlasına açım (sunduğu netlik ve olanaklar yeri doldurulamaz).

      1.    pandev92 dijo

        Hayır demiyorum, sadece benim için çok zor olduğu için, python veya mono, kullanımı daha kolay görünüyordu.

        1.    Giskard dijo

          Python ile devam edin. Sizi daha kısa sürede daha üretken kılar.

        2.    eliotime3000 dijo

          Python, yazılım merkezi veya Ubiquiti gibi programları yavaşlatan hataları düzeltmek için olabilir, ancak Java, sadece zaman öldürmek için.

          Aslında, C ++ ile kodları daha iyi anlayabilirim (çoğu okunamayan kodlardan oluşan bir labirent görse de) ve ne yapacağı hakkında net bir fikre sahip olabilirim (Java ilk seferde kodu anlamak daha kolay olsa da , Sanki BASIC gibi görüyorum ve doğruyu söylemek gerekirse, Oracle'ın daha fazla hata yapacağından korktuğum için Java JDK yerine OpenJDK ile çalışmayı tercih ediyorum).

    2.    nelson dijo

      ben de

  2.   demir metal dijo

    Teşekkürler arkadaşım.

  3.   Eduardo dijo

    Temel örnek? O zaman klasik olacak:
    sınıf: 2 + 2 = 4
    görev: 2 × 3 = 6
    Sınav: Eğer Eduardo'nun 20 portakalı varsa ve bunları 4 çocuğa dağıtması gerekiyorsa, çocukların vücut kütlesi nedir?

    1.    eliotime3000 dijo

      1.- Problemi çözün (en önemli şey ve acemi için gerçekten uzun süren şey).
      2.- Çözümü C ++ 'ya çevirin (eğer bu dilse, yenileri çoğu durumda vazgeçecek ve GNU Emacs kullanırlarsa daha fazlası).
      3.- Önlem olarak hata ayıklama ve derleme (aslında tam tersidir, ancak çok azı bu işlemi yapar).

      Not: Bu test kendini beğenmiş / bilgiçlikten uzaktır.

  4.   Eduardo dijo

    Üç nüsha olarak yapılan yorum için durumdan özür dilerim, ancak sayfa bana dahili sunucu hatası verdi ve belki de bu nedenle, yeniden denerken, tekrar gönderildi.
    Selamlar ve gönderi için teşekkürler !!

    1.    eliotime3000 dijo

      Sorun değil. Her neyse, Windows için her gece Chromium hakkında yorum yapıyorum ve yorum yaparken bu nitelikte herhangi bir sorun yaşamadım (ancak yorum sisteminin size Windows Millenium'dan daha fazla hata atması için kayıt olmanızı tavsiye etmeme rağmen).

      1.    eliotime3000 dijo

        Şunu söylemek istedim: "Yorum sisteminin size Windows Millenium'dan daha az hata atması için kayıt olmanızı tavsiye etmeme rağmen" [errare humanum est].

        1.    pandev92 dijo

          gürgen lol

  5.   eliotime3000 dijo

    Bu kod, gördüğüm en güzel C ++ (KISS tarzı veritabanı görüntüleyici).

    Şimdi, bu kod Windows üzerinde GCC ile birlikte GNU Emacs kullanılarak Windows üzerinde derlenebiliyorsa (MySQL / MariaDB dahil), bu bir kilometre taşı olacaktır.

  6.   Ratakill dijo

    Şüphesiz, c ++ sahip olduğumuz en iyisidir, bize sunduğu performans ve olasılıklar hakkında sınırsız sayıda test yaptım ve şüphesiz hiçbir şey onu aşamaz, elbette bunun bazıları için baş ağrısı olabileceğini biliyorum.

    1.    eliotime3000 dijo

      Bu dile hayranım, ancak tamamen ustalaşmak ve böylece Qt ile düzgün bir görsel uygulama oluşturabilmek için pratikten (ve yeterli) yoksunum.

  7.   jamin samuel dijo

    Huy hayır

    Python'u tercih ederim

    😀

    1.    Ratakill dijo

      Peki her deli adam tema selamlarıyla

    2.    Giskard dijo

      Mükemmel seçim.

    3.    eliotime3000 dijo

      [bencillik] Tembel [/ bencillik].

  8.   Julian dijo

    VB.NET'i tercih ediyorum, çok daha kolay ve SQL Server için iyi bir desteğe sahip. Diğer dillerden daha verimli olmasının yanı sıra iş ararken en çok talep edilenlerden biridir. C ++ ile zamanımı boşa harcamak istemiyorum

    1.    pandev92 dijo

      Böyle olursa, en çok talep edilen şey genellikle Java saçmalığıdır.

      1.    eliotime3000 dijo

        VB.NET ile aynıdır, ancak çok daha grafikseldir ve GNU / Linux üzerinde çalışmak faydasızdır.

  9.   Ratakill dijo

    Sadece C ++ bc probunun c ++, python ve qt'de basit bir satış ve çit sürprizi oluşturmasını öneriyorum:
    Python-> 7.6 mb
    Qt -> 27 mb (XD)
    C ++ -> 2.4 mb

    Pekala, herkes kendi sonuçlarını çıkaracak selamlar

    1.    Giskard dijo

      Python 7.6MB ??? Asla! İmkansız. Senaryolardan başka bir şey değillerse. Yoksa resimlerin var mıydı? Kodu paylaşın. Hepimiz böyle görüyor ve karşılaştırıyoruz. Bizi ikna edin.

      1.    Ratakill dijo

        Haklısın küçük bir böcek python 7.6 mb tüketmedi ama 6.2 mb ise şimdi söyle bana ...
        Kod bu ve bence daha optimize edilemez:
        #! / usr / bin / python
        Gi.repository ithalat Gtk'den

        win = Gtk.Window ()
        win.connect ("olay silme", ​​Gtk.main_quit)
        win.show_all ()
        Gtk.main ()

        1.    Giskard dijo

          RAM tüketimini kastettiğinizi tahmin ediyorum. Mesele şu ki, Python'da ve hemen hemen her dilde, kodu karmaşıklaştırırken asimptotik bir eğri ölçeklendiriyorsunuz. Sadece test etmek için PyGame ile geliştirdiğim bir oyunu çalıştırdım. Animasyon + arka plan sesi + etkinlikler için sesler ve ancak 14MB'ye ulaştı. Açıkçası, programınız bir pencere kadar basit değil, daha karmaşık olacak, sonunda göreceksiniz ki, yeterli koda sahip olduğunuzda, içindeki büyük değişiklikler size RAM kullanımında daha büyük bir artış getirmeyecektir.

        2.    Giskard dijo

          Size gösterdiğim şeyi biraz basitleştirmek için: Bir kod segmentini birkaç bin kez çalıştırmazsanız bir zaman profili oluşturamazsınız, değil mi? Aynı şekilde, mümkün olan en basit örneğe bakarak bir dilin çok mu az mı tükettiğini bilemezsiniz. Aslında, işin püf noktası, yapabileceğiniz en karmaşık olana bakmaktır.

          1.    Ratakill dijo

            Benim anlayışıma göre, bu 01010111, assembler ve sonra c, o kadar imkansız ki python gibi yüksek seviyeli bir dil ile performansta ac / c ++ 'ı aşıyor (her bakımdan) ve iyi, ne çok basitten daha iyi Örneğin, programınıza yük eklediğinizde (3.8'ten fazla form ile iyi bir ağırlığa sahip olan ve sınıfları, kalıtımı uygulayan büyük bir program, Polimorfizm, sanal işlevler, işaretçiler ve daha fazlası bir örnek vermek için) Fikrinizi değiştireceğiniz konusunda sizi temin ederim, diğer programlama dillerini eleştirmediğimi ve cantrario için Python'u çok daha az eleştirdiğimi açıkça belirtmek istiyorum ve selamlaşmayı derinleştirmek için cesaretlendirmeden çıplak gözle gördüğüm avantajları ve dezavantajları test ederek test edin

          2.    Giskard dijo

            Şuna bir bak:

            http://www.youtube.com/watch?v=cPVlYWxcu18

            Ancak videonun tamamını izleyin. Önyargıya dayalı bir fikir vermeyeceğinizi hile yapmayın.

          3.    Giskard dijo

            Her halükarda beni anlamadın. Konuyu karmaşıklaştırdıkça, her ikisi de aşağı yukarı aynı ağırlıkta olacaktır. Lazarus sayfasında, Lazarus'u C ile karşılaştırarak bununla ilgili bir grafik veriyorlar.
            Sonunda her şey göreceli arkadaştır. Çünkü insan tek başına RAM ile yaşamıyor.

    2.    eliotime3000 dijo

      En azından QT, Aqua, Win32 (ve Aero ve Metro varyantları) arayüzleri ve LXDE dışındaki diğer arayüzlerle uyumludur (dürüst olmak gerekirse Windows 95'e benziyor).

      1.    pandev92 dijo

        aqua gtk2 iyi görünüyor ...