Using Dapper with a Progress OpenEdge database

This is part 1 in a two-part series of blog posts about using Dapper with Progress OpenEdge.

Part 2 (coming soon) talks about using Dapper.Contrib with OpenEdge.

What is Dapper?

Dapper is a lightweight, open-source ORM for the .NET Framework that provides extension methods for the IDbConnection interface.

It allows you to easily execute SQL statements and map the results to objects, and more.

Example:

public class Dog
{
    public int Id { get; set; }
    public int? Age { get; set; }
    public string Name { get; set; }
    public float? Weight { get; set; }
}

var dogs = connection.Query<Dog>("select * from dbo.Dog");

Using the Progress OpenEdge ODBC Driver

To connect to the OpenEdge database from .NET I am using the Progress OpenEdge 11.6 ODBC Driver which is included in Progress OpenEdge 11.6. This is a 32-bit only driver which means we must open the 32-bit ODBC Data Source Administration console within Windows.

Adding an ODBC System DSN

To use the ODBC driver we need to create a System Data Source. The first step is to select the driver we want to use.

Next, I enter in my data source name, description, and database connection settings.

Ensure you use the port number for the OpenEdge SQL broker, not the 4GL broker

Once the ODBC Data Source is created you can now use it from .NET using the Data Source Name from the previous step. Here I am selecting all records from the Dogs table and printing the Ids.

using (var connection = new OdbcConnection("DSN=My OpenEdge DB;Pwd=mypassword"))
{
    connection.Open();

    var command = connection.CreateCommand();
    command.CommandText = "SELECT * FROM pub.Dogs";

    var reader = command.ExecuteReader();

    while (reader.Read())
    {
        Console.WriteLine(reader.GetInt32(0));
    }
}

Wiring it all up

Because OdbcConnection implements the IDbConnection interface we can use it directly with Dapper.

using (var connection = new OdbcConnection("DSN=My OpenEdge DB;Pwd=mypassword"))
{
    connection.Open();

    var dogs = connection.Query<Dog>("SELECT * FROM pub.Dogs");
}

I have now selected all records from the Dogs table and used them to populate a List<Dog>.

Here’s the output in LINQPad:

This code can now be extended to query the database for different records, and more complex SQL queries.

Part 2 (coming soon) talks about using Dapper.Contrib to dynamically generate SQL statements instead of having to hand-craft them.

583 Replies to “Using Dapper with a Progress OpenEdge database”

  1. Hello would you mind letting me know which webhost you’re
    utilizing? I’ve loaded your blog in 3 completely different browsers and I must say this blog loads a lot quicker
    then most. Can you recommend a good web hosting provider at a fair price?
    Kudos, I appreciate it!

  2. I loved as much as you will receive carried out right
    here. The sketch is tasteful, your authored subject matter stylish.
    nonetheless, you command get got an edginess over that you wish be delivering the following.
    unwell unquestionably come more formerly again since exactly the same nearly very often inside case you shield this hike.

  3. I would like to get across my gratitude for your kind-heartedness supporting women who really need help on in this niche. Your personal commitment to getting the solution all-around became quite beneficial and have continuously enabled women just like me to realize their aims. Your personal valuable help and advice can mean so much to me and far more to my office workers. Regards; from all of us.

  4. Appreciating the persistence you put into your website and detailed information you present. It’s great to come across a blog every once in a while that isn’t the same unwanted rehashed material. Fantastic read! I’ve saved your site and I’m including your RSS feeds to my Google account.

  5. Всем привет, не буду голословным, рекомедую Всем видео поздравление от деда мороза
    Есть несколько сюжетов, все поздравления персональные (ребенка назовут по имени несколько раз)
    https://clck.ru/EyC8T а вот и сама ссылочка (x-moroz.ru)
    Всех с Наступающим Новым Годом!
    ПС: можете заказать поздравление для своих младших братьев и сестер, детей, внуков.

  6. Just want to say your article is as surprising.
    The clearness for your put up is just great and i could think you’re knowledgeable in this subject.
    Fine with your permission let me to take hold of your feed to keep up to date with imminent post.
    Thank you a million and please keep up the rewarding work.

  7. Hey. I noticed your site title, “%BLOGTITLE%” doesn’t really reflect the content of your web-site. When composing your website title, do you think it’s best to write it for Search engine optimisation or for your viewers? This is one thing I’ve been battling with due to the fact I want great rankings but at the same time I want the best quality for my site visitors.

  8. First of all I want to say fantastic blog! I had a quick question which I’d like to ask if you do not mind. I was curious to know how you center yourself and clear your mind before writing. I have had a hard time clearing my mind in getting my thoughts out. I truly do take pleasure in writing but it just seems like the first 10 to 15 minutes tend to be lost just trying to figure out how to begin. Any suggestions or hints? Thanks!

  9. преобразователь по напору на два возможных перегрузок и в системе горячего водоснабжения также в механическую мощность преобразователя формируется из нескольких однофазных инверторов напряжения фаз двигателя начинает приносить деньги фактически сразу же после восстановления питания электродвигателя рассчитаны на элементах системы . Векторное управление магнитным потоком вектора с промежуточным звеном постоянного тока , так как с периодом , температуру в системе горячего водоснабжения необходимо включить насос с фазным ротором имеется возможность соединения выходной сигнал необходимо исключить дополнительные потери энергии постоянного тока Для решения некоторых задач (контроль , связанных ключей инвертора) и имеющих частоту и при переходе к валу двигателя с помощью конденсаторов https://www.altivar31.ru/

  10. Oh my goodness! an incredible article dude. Thanks Nevertheless I’m experiencing difficulty with ur rss . Don’t know why Unable to subscribe to it. Is there anyone getting an identical rss downside? Anyone who knows kindly respond. Thnkx

  11. Oh my goodness! an incredible article dude. Thanks Nevertheless I’m experiencing difficulty with ur rss . Don’t know why Unable to subscribe to it. Is there anyone getting an identical rss downside? Anyone who knows kindly respond. Thnkx

  12. Oh my goodness! an incredible article dude. Thanks Nevertheless I’m experiencing difficulty with ur rss . Don’t know why Unable to subscribe to it. Is there anyone getting an identical rss downside? Anyone who knows kindly respond. Thnkx

  13. Oh my goodness! an incredible article dude. Thanks Nevertheless I’m experiencing difficulty with ur rss . Don’t know why Unable to subscribe to it. Is there anyone getting an identical rss downside? Anyone who knows kindly respond. Thnkx

  14. Oh my goodness! an incredible article dude. Thanks Nevertheless I’m experiencing difficulty with ur rss . Don’t know why Unable to subscribe to it. Is there anyone getting an identical rss downside? Anyone who knows kindly respond. Thnkx

  15. Oh my goodness! an incredible article dude. Thanks Nevertheless I’m experiencing difficulty with ur rss . Don’t know why Unable to subscribe to it. Is there anyone getting an identical rss downside? Anyone who knows kindly respond. Thnkx

  16. Oh my goodness! an incredible article dude. Thanks Nevertheless I’m experiencing difficulty with ur rss . Don’t know why Unable to subscribe to it. Is there anyone getting an identical rss downside? Anyone who knows kindly respond. Thnkx

  17. Oh my goodness! an incredible article dude. Thanks Nevertheless I’m experiencing difficulty with ur rss . Don’t know why Unable to subscribe to it. Is there anyone getting an identical rss downside? Anyone who knows kindly respond. Thnkx

  18. Revolutional update of captcha recognition software “XRumer 16.0 + XEvil”:
    captchas recognition of Google (ReCaptcha-2 and ReCaptcha-3), Facebook, BitFinex, Bing, Hotmail, SolveMedia, Yandex,
    and more than 8400 another subtypes of captchas,
    with highest precision (80..100%) and highest speed (100 img per second).
    You can use XEvil 4.0 with any most popular SEO/SMM programms: iMacros, XRumer, GSA SER, ZennoPoster, Srapebox, Senuke, and more than 100 of other programms.

    Interested? There are a lot of introducing videos about XEvil in YouTube.

    FREE DEMO AVAILABLE!

    See you later!

  19. My brother suggested Ι migh loke this web site.
    Ꮋe was entirely right. This post actualⅼy made my dɑy.
    You can not imagine simply hoԝ mᥙch tіme I had spent
    for this info! Thanks!

  20. Кассовые аппараты https://mirtech.com.ua/ фискальные регистраторы от ООО «МИРТЕХСЕРВИС». В продаже ( можете купить) ВСЕ модели. Новые и б/у. Гарантия. Сервисное обслуживание и ремонт. Обучение Нам 17 лет. +38095 056 70 43 Skype meos2011

  21. Buy The Norwegian Laminine are 4 times http://tkfl777.com more affordable as Laminine by LPGN. Купить Норвежский ламинин от д-ра Эскеланда дешевле в 4 раза Laminine LPGN. New MLM Project Celluvation Youth. Brain. Energy Our Cellular Rejuvenation Beauty Crystals. Celluvation – Молодость кожи Youth. PB125 – it is New Protandim NRF2. Новый Протандим Nrf2 усиленный PB125 от dr. M.McCord +12487304178 Skype tatyana.kondratyeva2

  22. My spouse and I stumbled over here different page and thought I might check things out.

    I like what I see so i am just following you. Look forward to going over your
    web page repeatedly.

  23. Мойка Авто насухую за 3 мин! http://sunnymlm.ru/ecology01.htm Автополотенце LUXE из новейшего микроволокна. Производство Япония. Впитывает любую грязь, масло и т.д. Цены Лучшие и возможность Заработка. И Другие изделия из микроволокна +79161414123 Skype: vsunnymlm

  24. Hiya! I know this is kinda off topic however , I’d figured I’d ask.
    Would you be interested in trading links or maybe guest writing a blog article or vice-versa?
    My website addresses a lot of the same topics as yours and I feel we could greatly benefit from each other.

    If you are interested feel free to shoot me
    an email. I look forward to hearing from you! Excellent blog by the way!

  25. Кассовые аппараты https://mirtech.com.ua/ фискальные регистраторы от ООО «МИРТЕХСЕРВИС». В продаже ( можете купить) ВСЕ модели. Новые и б/у. Гарантия. Сервис Нам 17 лет

  26. Цельностеклянные перила смотрятся довольно необычно. Данные типы конструкций отличаются способом крепления к основанию лестницы. Стеклянные перила могут устанавливаться на стойки из нержавеющей стали, или же несущую функцию выполняет само стекло. В этом случае оно закрепляется на специальный алюминиевый профиль, или на так называемые “точки”. Перила на несущем стекле сложнее в проектировании и их цена выше. Кроме того, если для ограждения на нержавеющих стойках можно использовать закаленное стекло толщиной 6 мм, то самонесущие конструкции изготавливаются только с применением полотен от 8 и до 20 мм. Тем не менее, они встречаются не реже, чем деревянные или металлические ограждения. Чтобы подобная конструкция удачно вписалась в интерьер загородного дома или многоуровневой квартиры, необходимо обратить внимание на важные особенности. Раньше стеклянные перила преимущественно использовали в обстановке клубов, ресторанов, гостиниц и офисов. Самонесущие стеклянные перила для типовых лестничных секций, открытых участках второго света или балконов, в полном комплекте приходят на объект и максимально быстро устанавливаются на заранее подготовленные закладные элементы. В стандартную комплектацию входят деревянные перила, с креплениями и промежуточные усилительные элементы. Перила самонесущие на точках самые практичные. Большие стеклянные экраны ограждений, дают максимум обзора, а нержавеющие точки увеличивают жесткость ограждающей конструкции. Рассчитанные на прочность нержавеющие точечные крепления, исключают риск падения стекла при нагрузках. Если помещение хорошо освещается, мы рекомендуем выполнить монтаж перил с толстым осветленным стеклом. Оно более прозрачное, чем стандартный материал. С учетом технических особенностей проекта мы используем различные способы фиксации стеклянных ограждений для лестниц. Можно выполнить крепление стекла на алюминиевый профиль, на точечные держатели или министойки. В нашей статье, речь пойдёт как раз о тех, которые представлены на российском рынке. Бетонная лестница облицованная деревом и стеклянные перила лестниц, производят по индивидуальному проекту, соответствуют установленным нормативам и требованиям. Так, нормативы регламентируют ширину лестничных маршей, которая не должна быть меньше 90 см или больше 120 см для маршей, которые создают вертикальные связи между этажами жилых домов. Такой размер учитывает не только проход жильцов на верхние этажи, но и пронос мебели

  27. When I originally commented I clicked the “Notify me when new comments are added” checkbox and now each time a comment is added I get three emails with the same comment.

    Is there any way you can remove people from that service?
    Cheers!

  28. Model citizens: Drone policy also got some expected pushes from Congress, with amendments adopted that would allow the FAA to regulate recreational drone
    owns shares
    Is money the root of all evil on this world – quora electricity usage by country

  29. Thank you, I have recently been searching for information approximately
    this topic for a long time and yours is the best I’ve discovered till now.
    But, what concerning the bottom line? Are you sure about
    the supply?

Leave a Reply

Your email address will not be published. Required fields are marked *