MYSTERY ZILLION တွင် English သို့မဟုတ် Unicode ဖြင့်သာ အသုံးပြုခွင့်ရှိသည်။ ဇော်ဂျီ ၊ ဧရာ စသည်တို့ကို အသုံးပြုခွင့် မရှိ။ Unicode fonts များမှာ Mon3,Yunghkio, Myanamr3 စသည်များ အသုံးပြုနိုင်သည်။ Unicode Guide ကို ဒီမှာ Download ချပါ။ Zawgyi to Unicode Converter
Don't share ebook or software if nobody request. You can find free book websites on here. We are welcome for discussion or asking question instead.

How to get data from sql server 2008 correctly

ကျွန်တော် အခုရေးနေဖြစ်တဲ့ App ရဲ့ Database က SQLServer 2008 ထဲးမှာ ရှိနေတယ်ဗျ။ WebService သုံးပြီး Data ယူတယ်.. ထည့်တယ်.. အဲ့ဒါက မှန်သွားပါပြီးခင်ဗျာ
ဒါပေမဲ့ Data amount များတဲ့ အခါမှာ အားလုံးပါမလာဘူးခင်ဗျ....ဘာဖြစ်လို ့လဲးလိုထင်ပါသလဲးခင်ဗျာ....
Tagged:

မှတ်ချက်များ

  • Administrators
    ဘယ်လိုမှထင်လိုမရဘူး Data Rows က ဘယ်နှစ်သိန်းရှိတာလဲ Table Structure ကဘယ်လိုလဲ Query ကဘယ်လိုဟာလဲ Retrieve ပဲလား Aggregate လား ဘယ်လိုရေးရင်မထွက်တာလဲ အဲလိုထည့်ပြောမှ သိတဲ့လူတွေက ဖြေလို့ရမှာပေါ့ဗျာ။
  • Registered Users
    SQLServer 2008 Database ထဲးက data ကိုကျွန်တော်ရေးနေတဲ့ iPhone App ထဲးမှာ ဖော်ပြချင်းပါတယ်ခင်ဗျာ....
    ကျွန်တော် အခုတော့ VS2008 ထဲးမှာ WebService Project တခုဆောက်ပါတယ်... အဲ့ဒီ WebService Project ကိုလဲး စမ်းကြည့်ပြီးပြီးခင်ဗျ...data အမှန်အကန်ထွက်လာပါတယ်..
    ဒါပေမဲ့ iPhone App ထဲးမှာခေါသုံးလိုက်ပြီးဆိုရင် row ၄၀ လောက်ဆိုရင် TableViewထဲးမှာ ဖော်ပြပေးပါတယ်ခင်ဗျ... row ၆၀ ကျော်သွားပြီးဆိုရင် error တတ်သွားပါတယ်ခင်ဗျာ..

  • edited June 2013 Administrators
    အင်း အဲဒါဆိုရင် Database Error မဟုတ်လောက်ဘူး Client ဘက်က Display မှာဖြစ်နေတာပဲဖြစ်မှာပါ အဲဒီတော့ Web Service ဘက်က Data မှန်တယ်ဆိုရင် iOS ဘက်က ရေးထားတဲ့ကုဒ်ကိုပြ အဲဒါဆိုရင် အကြံပေးလို့ရပါလိမ့်မယ်။
  • edited June 2013 Registered Users
    ဒီ Method ကတော့ ကျွန်တော် Database နဲ ့connect လုုပ်တဲ့ event ပါ...
    <pre lang="objc"
    - (IBAction)searchMobileOwnerButton:(id)sender {
    blockCombo.userInteractionEnabled = NO;
    NSString *soapMessage = [NSString stringWithFormat:
    @<?xml version=\1.0\" encoding=\"utf-8\"?>\n"
    "<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"; xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"; xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">\n";
    "<soap:Body>\n"
    "<LandedGetAllStreedNameByAlpha xmlns=\"http://mydomain.name/SMSWebService\">";
    "<street>%@<;/street>"
    "<key>dddd...,,,fff,,@#<;/key>"
    "</LandedGetAllStreedNameByAlpha>"
    "</soap:Body>\n"
    "</soap:Envelope>\n", startWithData
    ];

    NSURL *url = [NSURL URLWithString:@"http://mydomain.name/SMSWebService.asmx"];
    NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:url];
    NSString *msgLength = [NSString stringWithFormat:@%d, [soapMessage length]];

    [theRequest addValue: @text/xml; charset=utf-8 forHTTPHeaderField:@Content-Type];
    [theRequest addValue: @"http://mydomain.name/SMSWebService/LandedGetAllStreedNameByAlpha"; forHTTPHeaderField:@SOAPAction];
    [theRequest addValue: msgLength forHTTPHeaderField:@Content-Length];
    [theRequest setHTTPMethod:@POST];
    [theRequest setHTTPBody: [soapMessage dataUsingEncoding:NSUTF8StringEncoding]];

    NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self];

    if( theConnection )
    {
    webData = [NSMutableData data] ;
    }
    else
    {
    NSLog(@theConnection is NULL);
    }
    }
    </pre>
  • edited June 2013 Registered Users
    ဒီ Method ၄ခုုကတော့ Connection method လေးခုုဖြစ်ပါတယ်ခင်ဗျာ
    <pre lang="objc">
    - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{
    [webData setLength:0];
    }
    - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{
    [webData setData:data];
    }
    - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error{
    NSLog(@Database Connection Error);
    }
    -(void)connectionDidFinishLoading:(NSURLConnection *)connection{
    //NSString *theXML = [[NSString alloc] initWithBytes: [webData mutableBytes] length:[webData length] encoding:NSUTF8StringEncoding];
    //NSLog(@XML : %@", theXML);
    if( xmlParser )
    {
    xmlParser=nil;
    }
    xmlParser = [[NSXMLParser alloc] initWithData: webData];
    [xmlParser setDelegate: self];
    [xmlParser setShouldResolveExternalEntities: YES];
    [xmlParser parse];
    }
    </pre>
  • edited June 2013 Registered Users
    To get the data, i'm using these methods.
    => I also use to parse xml to json file by using #import "SBJson.h".
    => If i take a lot of data from server, will come out error.
    Thanks for helping me .., Bro
    <pre lang="objc">
    -(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *) namespaceURI qualifiedName:(NSString *)qName
    attributes: (NSDictionary *)attributeDict{
    if([elementName isEqualToString:@LandedGetAllStreedNameByAlphaResult])
    {
    if(!soapResults)
    {
    soapResults = [[NSMutableString alloc] init];
    }
    recordResults = TRUE;
    }
    }
    -(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{
    if( recordResults )
    {
    [soapResults appendString: string];
    }
    }
    -(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{
    recordResults = FALSE;
    SBJsonParser *jsonParser = [[SBJsonParser alloc] init];
    if( [elementName isEqualToString:@LandedGetAllStreedNameByAlphaResult])
    {
    streetArray = [[NSMutableArray alloc]init];
    NSMutableDictionary *dicRes = [jsonParser objectWithString:soapResults];
    for (NSDictionary *dir in dicRes ){
    NSString *tmp = [dir objectForKey:@Street];
    [streetArray addObject:tmp];
    }
    streetCombo.userInteractionEnabled = YES;
    [streetCombo setValues:streetArray];
    [self setBsKeyboardControl:BSKeyboardControls alloc] initWithFields:@[streetCombo];
    [self.bsKeyboardControl setDelegate:self];
    }
    [DejalActivityView removeView];
    soapResults = nil;
    }
    </pre>
  • Administrators
    row ၆၀ ကျော်သွားပြီးဆိုရင် error တတ်တယ် ဆိုတော့ ဘာ error တက်တာလဲ ?

    Exception တွေ အကုန်ဖုန်းထားလား မသိဘူး ?
  • edited June 2013 Registered Users
    <pre lang="objc">
    //NSString *theXML = [[NSString alloc] initWithBytes: [webData mutableBytes] length:[webData length] encoding:NSUTF8StringEncoding];
    //NSLog(@XML : %@", theXML);
    </pre>

    အဲ့ဒီ နှစ်ကြောင်နဲ့ ဖမ်းကြည့်ပါတယ် ခင်ဗျ....
    Data တကယ်မှန်တယ်ဆိုရင်

    <pre lang="xml">
    2013-06-24 12:28:15.689 SMSService[1148:c07] XML : <?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"; xmlns:xis="http://www.w3.org/2001/XMLSchema-instance"; xmlns:xsd="http://www.w3.org/2001/XMLSchema">;
    <"soap:Body>
    <"LandedGetAllStreedNameByAlphaResponse xmlns="http://mydomain.name/SMSWebService">;
    <"LandedGetAllStreedNameByAlphaResult>
    [{"Street":"ADAM DRIVE"},
    {"Street":"ADAM PARK"},
    {"Street":"ADAM ROAD"},
    {"Street":"AH SOO GARDEN"},
    {"Street":"AH SOO WALK"},
    {"Street":"AIDA STREET"},
    {"Street":"AKYAB ROAD"}]
    <"/LandedGetAllStreedNameByAlphaResult>
    <"/LandedGetAllStreedNameByAlphaResponse>
    <"/soap:Body>
    <"/soap:Envelope>
    </pre>

    Data များသွားပြီးဆိုရင်
    <pre lang="xml">
    2013-06-24 12:31:43.665 SMSService[1148:c07] XML : "Street":"BUKIT TIMAH ROAD"},{"Street":"BUKIT TINGGI ROAD"},{"Street":"BUKIT TUNGGAL ROAD"},{"Street":"BUKIT WAY"},{"Street":"BUNGA RAMPAI PLACE"},{"Street":"BURGHLEY DRIVE"},{"Street":"BURGUNDY CRESCENT"},{"Street":"BURGUNDY DRIVE"},{"Street":"BURGUNDY RISE"},{"Street":"BURN ROAD"},{"Street":"BURNFOOT TERRACE"},{"Street":"BUSSORAH STREET"},{"Street":"BUTTERFLY AVENUE"},{"Street":"BUTTERWORTH LANE"}]
    <"/LandedGetAllStreedNameByAlphaResult>
    <"/LandedGetAllStreedNameByAlphaResponse>
    <"/soap:Body>
    <"/soap:Envelope>
    </pre>
    WebService ကတော့ Data ကိုအမှန် Response လုုပ်နုိုင်ပါတယ်လို့ထင်ပါတယ်ခင်ဗျ...
    ဒီဘက် App က Data ကို Receive လုပ်တဲ့နေရာမှာ Data တ၀တ်တပျက်ဖြစ်သွားပါတယ်ခင်ဗျ.....
  • Administrators
    တွေ့ပြီဗျ... ပြဿနာက

    <pre lang="objc">
    - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{
    [webData setData:data];
    }
    </pre>

    အဲဒါကို

    <pre lang="objc">
    - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{
    [webData appendData:data];
    }
    </pre>

    လို့ပြင်လိုက်ရင် ရသွားလိမ့်မယ်။ Data က append လုပ်ရမှာ ဖြစ်ပေမယ့် Set လုပ်ထားလို့ နောက်ဆုံး ရတဲ့ စာပဲ ဝင်လိမ့်မယ်။ appendData ပြောင်းလိုက်ရင် ရသွားလိမ့်မယ်။
  • edited June 2013 Registered Users
    Wow..., so happy..,
    ko saturngod and ko CalmHill
    ကျေးဇူးပါခင်ဗျာ...ကျွန်တော် လုပ်နေသာ ၂ပတ်ရှိသွားပြီးခင်ဗျ...
    အခုမှပဲရတော့တယ်
  • Administrators
    Yah! that's what i want to say. When you provide the sufficient information for your question, you can get the answer correctly and quickly. :)
  • edited June 2013 Registered Users
    ဟုတ်ကဲ့ပါခင်ဗျာ..... :)
    ကျွန်တော်တခုလောက် ထပ်မေးပါရစေခင်ဗျာ...

    တကယ်လို့များ View ထဲမှာDatabase နဲ့ connect လုပ်ရသာ ၃ခါရှိတယ်ဆို ...အဲ့ဒီ statements တွေ ကို ပြန်ရေး၇ပါတယ်ခင်ဗျာ...

    ကျွန်တော်အနေနဲ့ Database Connect Helper class တခုလောက်ရးချင်ပါတယ်ခင်ဗျ...

    URL Request Method, Connection Methods and XML Parser Methods တွေကို Helper Class ထဲမှာရေးရသာ အဆင်ပြေပါတယ်ခင်ဗျ..နောက်ဆုံး Method

    <pre lang="objc">
    -(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{
    recordResults = FALSE;
    SBJsonParser *jsonParser = [[SBJsonParser alloc] init];
    NSMutableDictionary *dicRes = [jsonParser objectWithString:soapResults];
    soapResults = nil;
    }
    </pre>
    နောက်ဆုံး ထွက်လာတဲ့ Data ကို Json ပြောင်းပြီး NSMutableDictionary ထည့်တယ်...အဲ့ဒါပြီးတော့ ကျွန်တော် အဲ့ဒီ Array ကို Return ဘယ်လို လုပ်ပြန်ရပါမလဲးခင်ဗျာ.....
  • edited June 2013 Administrators
    Objective-C မှာ သုံးထားတဲ့ XMLparser က synchronous ပါ။ ဒါကြောင့် parser parse လုပ်ပြီးသွားတာနဲ့ ကိုယ်ပိုင် ဖန်တီးထားတဲ့ delegate ကို လှမ်းခေါ်နိုင်ပါတယ်။ dicRes ကိုတော့ private အနေနဲ့ data ကို ကြေငြာခဲ့ဖို့လိုတယ်။ ဒါမှသာ parse လုပ်ပြီးသွားတာနဲ့ delegate ကို ပြန်ခေါ်နိုင်မှာပါ။

    ဥပမာ

    <pre lang="objc">
    -(void)connectionDidFinishLoading:(NSURLConnection *)connection{
    if( xmlParser )
    {
    xmlParser=nil;
    }
    xmlParser = [[NSXMLParser alloc] initWithData: webData];
    [xmlParser setDelegate: self];
    [xmlParser setShouldResolveExternalEntities: YES];
    [xmlParser parse];

    [self.delegate getResultsFromWebService:self.dicRes];
    }

    -(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{
        recordResults = FALSE;
        SBJsonParser *jsonParser = [[SBJsonParser alloc] init];
       _dicRes = NSDictionary alloc] initWithDictionary:[jsonParser objectWithString:soapResults;   
        soapResults = nil;
    }
    </pre>
  • Registered Users
    ဟုတ်ကဲ့ပါခင်ဗျ...
    ကျွန်တော်ကို company က App ရေးဖိုဆိုပြီးလေ့လာချိန် နှစ်ပါတ်ပေးပါတယ်ခင်ဗျ..ပြီးသာနဲ ့ကျွန်တော် စရေးရတော့သာပဲ..
    အခုတော့ ရေးနေသာ နှစ်ပါတ်ရှိသွားပါပြီးခင်ဗျ....စာတွေလဲးဖက်ရသာ အများကြီးပါပဲခင်ဗျာ...
    အခု အကိုပြောသာတဲ့ dicRes ကို private လုပ်ပေးရမယ်ဆိုသာ ဘယ်နေရာမှာပါလဲးခင်ဗျာ...
    အမှန်အတိုင်ပြောရရင်တော့ ကျွန်တော် protocol and delegate ကိုကောင်ကောင်မဖက်ရသေးသလို နာလည်းမလည်သေးပါဘူးခင်ဗျာ...
    ကျေးဇူးတင်ပါတယ်ခင်ဗျာ...
  • edited June 2013 Administrators
    <pre lang="objc">
    @ interface detailViewController ()

    @ property (nonatomic,strong) NSDictionary *dicRes;

    @ end


    @ implementation detailViewController

    //other codes
    //other codes
    //other codes
    //other codes

    -(void)connectionDidFinishLoading:(NSURLConnection *)connection{
    if( xmlParser )
    {
    xmlParser=nil;
    }
    xmlParser = [[NSXMLParser alloc] initWithData: webData];
    [xmlParser setDelegate: self];
    [xmlParser setShouldResolveExternalEntities: YES];
    [xmlParser parse];

    [self.delegate getResultsFromWebService:self.dicRes];
    }

    -(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{
        recordResults = FALSE;
        SBJsonParser *jsonParser = [[SBJsonParser alloc] init];
       _dicRes = NSDictionary alloc] initWithDictionary:[jsonParser objectWithString:soapResults;   
        soapResults = nil;
    }

    //other codes
    //other codes
    //other codes
    //other codes

    @ end
    </pre>

    for delegate method , you should read http://alexefish.com/post/15966868557/understanding-and-creating-delegates-in-objective-c
Sign In or Register to comment.