WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Utvärdering av Phalanger 3.0 (.NET Kompilator för PHP5 med inslag av PHP6) (https://www.wn.se/forum/showthread.php?t=1058375)

Conny Westh 2013-07-03 13:56

Jag använder MS SQL-Server, Access, MySQL.

Jag kör Windows 7 som operativ.

Linuus 2013-07-03 14:09

Citat:

Ursprungligen postat av ConnyWesth (Inlägg 20473256)
Jag använder MS SQL-Server, Access, MySQL.

Jag kör Windows 7 som operativ.

1. Windows brukar inte rekommenderas för Ruby-utveckling. Skulle rekommendera Linux istället (eller OSX såklart :) ).

2. MS SQL-Server lirar nog inte så bra med Ruby. Prova med MySQL det ska funka bra!

Conny Westh 2013-07-03 20:39

Citat:

Ursprungligen postat av Linuus (Inlägg 20473261)
1. Windows brukar inte rekommenderas för Ruby-utveckling. Skulle rekommendera Linux istället (eller OSX såklart :) ).

2. MS SQL-Server lirar nog inte så bra med Ruby. Prova med MySQL det ska funka bra!

Linux är inte ett alternativ, men jag har kört installetionsprogrammet för MySql som du hade länk till.

Jag var först tvungen att installera DevKit, vilket är gjort, sen fick man upp något nytt kommandofönster och sen körde jag typ

$ gem install mysql <ENTER>

...sen sa att driver för MySql är successfully installed, men inget av de exempelkoder jag kört funkar.

Det gnäller på att det inte finns någon namespace rdbi/dbi....

Har sökt men inte hittat filen libmysql.dll i min Ryby installetion (c:\Program Files (x86)\Ruby200...).

enligt doc så ska jag lägga filen libmysql.dll i ryby\bin.... men jag hittar inte libmysql.dll någonstans....

finns några *.rb-filer i driver-katalogen som jag lagt upp, men det var en helt USEL dokumentation och dokumentationen stämmer inte med verkligheten....

Jag har nu ägnat halva dagen åt att hitta en lösning för att köra mot MySQL i Ruby.... Jag känner mig frustrerad....

tartareandesire 2013-07-03 20:56

libmysql.dll hittar du i din MySQL-installation, inte i Ruby.

Conny Westh 2013-07-03 22:29

Citat:

Ursprungligen postat av tartareandesire (Inlägg 20473310)
libmysql.dll hittar du i din MySQL-installation, inte i Ruby.

Ok, då fattar jag....

Trodde det var rdbi, interface mot MySQL.....


Men den gnäller fortfarande på namespace....

Följande kod har jag att testa med:

Kod:

#!ruby20
# encoding: utf-8

=begin
= Description
    The DBI package is a vendor independent interface for accessing databases.
    It is similar, but not identical to, Perl's DBI module.
   
    <DDL-script>
        delimiter $$
   
        CREATE TABLE `players`
        (
          `id` int(11) NOT NULL AUTO_INCREMENT,
          `firstname` varchar(32) NOT NULL,
          `lastname` varchar(32) NOT NULL,
          PRIMARY KEY (`id`)
        ) ENGINE=InnoDB AUTO_INCREMENT=430 DEFAULT CHARSET=latin1$$
    </DDL-script>

= Synopsis
=end

require 'rdbi\dbi'

# Same example, but a little more Ruby-ish
class Main
    def initialize()   
        @connectionstring = 'DBI:Mysql:test'
        @user = 'root'
        @password = '**************'
        test()
    end
    def test()
        @dbh = connect()
        select()
    end
    def connect()
        DBI.connect(connectionstring, user, password) do | dbh |
        return dbh
    end
    def select()       
        @dbh.select_all('select * from players') do | row |
            puts row
        end
    end
end

Main.new()


Jag har lagt in lib filerna från "rdbi-1.2.0.pre0" till Rubys lib-katalog.
Har även lagt in lib-filerna från "rdbi-driver-mysql-master" till Rubys lib-katalog.
Har även kopierat in libmysql.dll i Ruby\bin från MySQL\lib.

Men namespace rdbi\dbi hittas inte....

Linuus 2013-07-03 23:37

Skit i rdbi...


1. Installera en gem för mysql. Tex mysql2 (tror den ska vara lite bättre än mysql)
https://github.com/brianmario/mysql2

2. Tuta och kör ;) Finns massa exempel på länken ovan.





Citat:

Ursprungligen postat av ConnyWesth (Inlägg 20473315)
Ok, då fattar jag....

Trodde det var rdbi, interface mot MySQL.....


Men den gnäller fortfarande på namespace....

Följande kod har jag att testa med:

Kod:

#!ruby20
# encoding: utf-8

=begin
= Description
    The DBI package is a vendor independent interface for accessing databases.
    It is similar, but not identical to, Perl's DBI module.
   
    <DDL-script>
        delimiter $$
   
        CREATE TABLE `players`
        (
          `id` int(11) NOT NULL AUTO_INCREMENT,
          `firstname` varchar(32) NOT NULL,
          `lastname` varchar(32) NOT NULL,
          PRIMARY KEY (`id`)
        ) ENGINE=InnoDB AUTO_INCREMENT=430 DEFAULT CHARSET=latin1$$
    </DDL-script>

= Synopsis
=end

require 'rdbi\dbi'

# Same example, but a little more Ruby-ish
class Main
    def initialize()   
        @connectionstring = 'DBI:Mysql:test'
        @user = 'root'
        @password = '**************'
        test()
    end
    def test()
        @dbh = connect()
        select()
    end
    def connect()
        DBI.connect(connectionstring, user, password) do | dbh |
        return dbh
    end
    def select()       
        @dbh.select_all('select * from players') do | row |
            puts row
        end
    end
end

Main.new()


Jag har lagt in lib filerna från "rdbi-1.2.0.pre0" till Rubys lib-katalog.
Har även lagt in lib-filerna från "rdbi-driver-mysql-master" till Rubys lib-katalog.
Har även kopierat in libmysql.dll i Ruby\bin från MySQL\lib.

Men namespace rdbi\dbi hittas inte....


Nerix 2013-07-03 23:53

Ruby-utveckling under Windows kan inte vara enkelt då ingen använder platformen.

Conny Westh 2013-07-04 00:21

Citat:

Ursprungligen postat av Linuus (Inlägg 20473318)
Skit i rdbi...


1. Installera en gem för mysql. Tex mysql2 (tror den ska vara lite bättre än mysql)
https://github.com/brianmario/mysql2

2. Tuta och kör ;) Finns massa exempel på länken ovan.

Laddade ner mysql2, körde gem install mysql2....

successfully installed....

Kod:

C:\Projects\Conny\Ruby\MySQL2\mysql2-master>gem install mysql2
Fetching: mysql2-0.3.11-x86-mingw32.gem (100%)

======================================================================================================

  You've installed the binary version of mysql2.
  It was built using MySQL Connector/C version 6.0.2.
  It's recommended to use the exact same version to avoid potential issues.

  At the time of building this gem, the necessary DLL files where available
  in the following download:

  http://dev.mysql.com/get/Downloads/Connector-C/mysql-connector-c-noinstall-6.0.2-win32.zip/from/pick

  And put lib\libmysql.dll file in your Ruby bin directory, for example C:\Ruby\bin

======================================================================================================

Successfully installed mysql2-0.3.11-x86-mingw32
Parsing documentation for mysql2-0.3.11-x86-mingw32
unable to convert "\x90" from ASCII-8BIT to UTF-8 for lib/mysql2/1.8/mysql2.so, skipping
unable to convert "\x90" from ASCII-8BIT to UTF-8 for lib/mysql2/1.9/mysql2.so, skipping
Installing ri documentation for mysql2-0.3.11-x86-mingw32
1 gem installed

C:\Projects\Conny\Ruby\MySQL2\mysql2-master>

gick till exaples och försökte köra de två exempel som finns där eventmachine.rb respektive threaded.rb, inget av dem funkade.... den skriker på att require cannot load such file.... dvs mysql2

Körde även koden enligt exempel i ReadMe-filen:

Kod:

# File: mysql2_test.rb
client = Mysql2::Client.new(:host => "localhost", :database => 'test', :username => "root", :password => '**************')
results = client.query("SELECT * FROM players")
results.each do |row|
    puts row
end

Felmeddelande:

Kod:

C:\Projects\Conny\Ruby\Hello>ruby mysql2_test.rb
mysql2_test.rb:1:in `<main>': uninitialized constant Mysql2 (NameError)

C:\Projects\Conny\Ruby\Hello>


Jag kör senaste version av Ruby dvs 2.0.0p195

Nerix 2013-07-04 00:44

Har du importerat mysql2 i din kod?

`require "mysql2"`

Conny Westh 2013-07-04 01:05

Citat:

Ursprungligen postat av Nerix (Inlägg 20473325)
Har du importerat mysql2 i din kod?

`require "mysql2"`

Jag har testat både med och utan med samma resultat, dvs det blir fel.

Använder jag require "mysql2" så får jag dock betydligt fler felrader enligt:

Utan require:
Kod:

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. Med ensamrätt.

C:\Projects\Conny\Ruby\Hello>ruby mysql2_test.rb
mysql2_test.rb:1:in `<main>': uninitialized constant Mysql2 (NameError)

Med require:
Kod:

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. Med ensamrätt.

C:\Projects\Conny\Ruby\Hello>ruby mysql2_test.rb
C:/Program Files (x86)/Ruby200/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require': cannot load such file -- mysql2/2
.0/mysql2 (LoadError)
        from C:/Program Files (x86)/Ruby200/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
        from C:/Program Files (x86)/Ruby200/lib/ruby/gems/2.0.0/gems/mysql2-0.3.11-x86-mingw32/lib/mysql2/mysql2.rb:2:in `<top (requ
ired)>'
        from C:/Program Files (x86)/Ruby200/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
        from C:/Program Files (x86)/Ruby200/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
        from C:/Program Files (x86)/Ruby200/lib/ruby/gems/2.0.0/gems/mysql2-0.3.11-x86-mingw32/lib/mysql2.rb:9:in `<top (required)>'

        from C:/Program Files (x86)/Ruby200/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:110:in `require'
        from C:/Program Files (x86)/Ruby200/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:110:in `rescue in require'
        from C:/Program Files (x86)/Ruby200/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:35:in `require'
        from mysql2_test.rb:1:in `<main>'

C:\Projects\Conny\Ruby\Hello>



Alla tider är GMT +2. Klockan är nu 12:13.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson