first ruby script mysql data input

Discussion in 'Ruby' started by PB0711, Jul 22, 2007.

  1. PB0711

    PB0711 Guest

    Hello all,

    I'm trying to use ruby for the first time. I want to make a script
    that is going to parse through my file and pick stuff up and place it
    into a database. When I put it into the database I would like to first
    ask the database if there is something already like it and if there is
    an "empty" primary key to use.
    The key ID's in the database go something like:
    1 2 3 5 6 7 8 10 11 12 18 22 23 24 and so on. I want to put stuff into
    ID 4, 9, 13 and so on. I was wondering what modules I should use and
    how to go about this.
    I come from Perl and I'm pretty use to doing this type of thing in
    Perl, expect for asking what ID is "free",

    So just ideas of how to do it and what tools you all think I will
    need

    Thank
    PB0711, Jul 22, 2007
    #1
    1. Advertising

  2. PB0711

    hemant Guest

    On 7/22/07, PB0711 <> wrote:
    > Hello all,
    >
    > I'm trying to use ruby for the first time. I want to make a script
    > that is going to parse through my file and pick stuff up and place it
    > into a database. When I put it into the database I would like to first
    > ask the database if there is something already like it and if there is
    > an "empty" primary key to use.
    > The key ID's in the database go something like:
    > 1 2 3 5 6 7 8 10 11 12 18 22 23 24 and so on. I want to put stuff into
    > ID 4, 9, 13 and so on. I was wondering what modules I should use and
    > how to go about this.
    > I come from Perl and I'm pretty use to doing this type of thing in
    > Perl, expect for asking what ID is "free",
    >
    > So just ideas of how to do it and what tools you all think I will
    > need
    >
    > Thank


    You would need a library capable of handling connection to mysql db.
    You can try:

    sudo gem install mysql

    Or you can use DBI bindings(which in some form exist in perl also i believe).

    you can do google search on "mysql+ruby" and find many meaningful
    tutorials and documents.
    hemant, Jul 22, 2007
    #2
    1. Advertising

  3. PB0711

    Todd Benson Guest

    On 7/21/07, PB0711 <> wrote:
    > Hello all,
    >
    > I'm trying to use ruby for the first time. I want to make a script
    > that is going to parse through my file and pick stuff up and place it
    > into a database. When I put it into the database I would like to first
    > ask the database if there is something already like it and if there is
    > an "empty" primary key to use.
    > The key ID's in the database go something like:


    I think you meant the key ID's in a table.

    > 1 2 3 5 6 7 8 10 11 12 18 22 23 24 and so on. I want to put stuff into
    > ID 4, 9, 13 and so on. I was wondering what modules I should use and
    > how to go about this.
    > I come from Perl and I'm pretty use to doing this type of thing in
    > Perl, expect for asking what ID is "free",
    >
    > So just ideas of how to do it and what tools you all think I will
    > need


    I've never used the mysql gem, but it might look something like this
    after you successfully connect to the database:

    ids = []
    res = db.query( "select id from mytable")
    while row = res.fetch_row do
    ids << row[0]
    end
    res.free
    ids.map! { |i| i.to_i } # do this just in case mysql doesn't return integers
    # at this point you have an array of integers, how you get here is up to you
    # now, for the ruby chocolate ...
    free_ids = (1..ids.max).to_a - ids

    There are other gems for mysql access (activerecord, sequel, and I
    think there's an odbc one).

    hth,
    Todd
    Todd Benson, Jul 22, 2007
    #3
  4. > ids = []
    > res = db.query( "select id from mytable")
    > while row = res.fetch_row do
    > ids << row[0]
    > end
    > res.free
    > ids.map! { |i| i.to_i } # do this just in case mysql doesn't return integers
    > # at this point you have an array of integers, how you get here is up to you
    > # now, for the ruby chocolate ...
    > free_ids = (1..ids.max).to_a - ids


    here's the sequel version:

    require 'sequel/mysql'
    DB = Sequel.open('mysql://user@localhost:/mydb')
    free_ids = (1..ids.max).to_a - DB[:mytable].map:)id)

    best
    sharon
    Sharon Rosner, Jul 22, 2007
    #4
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. cloudcontrol
    Replies:
    1
    Views:
    429
    Thomas Jollans
    Sep 13, 2010
  2. Randy Lawrence

    mysql-ruby or ruby-mysql?

    Randy Lawrence, May 23, 2004, in forum: Ruby
    Replies:
    3
    Views:
    102
    Randy Lawrence
    May 24, 2004
  3. Sy
    Replies:
    0
    Views:
    180
  4. Michael Boutros
    Replies:
    3
    Views:
    94
    Michael Boutros
    Mar 17, 2007
  5. Mark Meijer

    mySQL Ruby Gem and MAMP mySQL

    Mark Meijer, Feb 2, 2008, in forum: Ruby
    Replies:
    3
    Views:
    163
    louis
    Feb 3, 2008
Loading...

Share This Page